Browse Source

Merge remote-tracking branch 'origin/feature/phaseOne'

origin/feature/monitoring
liuchuang 5 years ago
parent
commit
bc4e4a0ef6
  1. 25
      src/views/modules/epidemic/epidemicreportuserinfo.vue
  2. 285
      src/views/modules/epidemic/persontesting-add-or-update.vue
  3. 266
      src/views/modules/epidemic/persontesting-look.vue
  4. 132
      src/views/modules/epidemic/persontesting.vue
  5. 256
      src/views/modules/epidemic/reader.vue
  6. 56
      src/views/modules/news/notice-add-or-update.vue
  7. 65
      src/views/modules/sys/partyorgtype-add-or-update.vue
  8. 23
      src/views/modules/sys/partyorgtype.vue
  9. 4
      src/views/modules/vim/vaccinationinfo.vue
  10. 2
      src/views/modules/worklog/worklog.vue

25
src/views/modules/epidemic/epidemicreportuserinfo.vue

@ -79,6 +79,12 @@
maxlength="500"
style="width:200px"></el-input>
</el-form-item>
<el-form-item label="核酸检测状态" prop="chechState">
<el-select v-model="dataForm.chechState" clearable placeholder="核酸检测状态">
<el-option v-for="item in checkStateList" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<br/>
<el-form-item label="出生年月" label-width="90px"
prop="ageStart">
@ -173,16 +179,6 @@
type="danger"
@click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('demo:reportuserinfo:updateAge')"
type="danger"
@click="updateAge()">更新年龄</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('demo:reportuserinfo:updateAge')"
type="danger"
@click="updateVacc()">更新接种信息</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading"
:data="dataList"
@ -228,6 +224,11 @@
<el-tag v-else-if='scope.row.vaccinationState === 2' size="small" type="success">接种完成</el-tag>
</template>
</el-table-column>
<el-table-column prop="checkStateName"
label="核酸检测状态"
header-align="center"
align="center"
width="150"></el-table-column>
<el-table-column prop="householdRegisterName"
label="户籍地"
header-align="center"
@ -383,6 +384,10 @@ export default {
householdRegisterName: '',
outLiveAddressName: ''
},
checkStateList: [
{dictValue: '0', dictName: '已检测'},
{dictValue: '1', dictName: '未检测'},
],
companyArr: [],
publicPath: process.env.BASE_URL,
pickerBeginDateBefore: {

285
src/views/modules/epidemic/persontesting-add-or-update.vue

@ -0,0 +1,285 @@
<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="name" label-width="120px">
<el-input v-model="dataForm.name" placeholder="姓名" style="width:250px"></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="mobile" label-width="120px">
<el-input v-model="dataForm.mobile" placeholder="手机号码" style="width:250px"></el-input>
</el-form-item>
<el-form-item label="性别" prop="sex" label-width="120px">
<el-input v-model="dataForm.sex" placeholder="性别" style="width:250px"></el-input>
</el-form-item>
<!-- <el-form-item label="民族" prop="nation" label-width="120px">-->
<!-- <el-input v-model="dataForm.nation" placeholder="民族"style="width:250px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="身份证号码" prop="idcard" label-width="120px">
<el-input v-model="dataForm.idcard" placeholder="身份证号码" style="width:250px"></el-input>
</el-form-item>
<el-form-item label="签发机关" prop="organ" label-width="120px">
<el-input v-model="dataForm.organ" placeholder="签发机关" style="width:250px"></el-input>
</el-form-item>
<!-- <el-form-item label="出生日期" prop="birthday" label-width="120px">-->
<!-- <el-date-picker-->
<!-- v-model="dataForm.birthday"-->
<!-- type="date"-->
<!-- placeholder="出生日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- format="yyyy-MM-dd"-->
<!-- style="width:250px">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="核酸检测时间" prop="testingTime" label-width="120px">
<el-date-picker
v-model="dataForm.testingTime"
type="datetime"
placeholder="核酸检测时间"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width:250px">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="照片base64编码" prop="imgCode">-->
<!-- <el-input v-model="dataForm.imgCode" placeholder="照片base64编码"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="照片地址" prop="imgUrl">-->
<!-- <el-input v-model="dataForm.imgUrl" placeholder="照片地址"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="照片"
v-loading="loading"
prop="imgUrl"
label-width="120px">
<el-upload class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="dataForm.imgUrl"
:src="dataForm.imgUrl"
class="avatar">
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
<div slot="tip"
class="el-upload__tip">只能上传jpg/png文件且不超过500kb
</div>
</el-upload>
</el-form-item>
<el-form-item label="住址" prop="address" label-width="120px">
<el-input v-model="dataForm.address" placeholder="住址"></el-input>
</el-form-item>
<!-- <el-form-item label="核酸接测结果" prop="testingResult">-->
<!-- <el-input v-model="dataForm.testingResult" placeholder="核酸接测结果"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="乐观锁" prop="revision">-->
<!-- <el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建人" prop="createdBy">-->
<!-- <el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="createdTime">-->
<!-- <el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新人" prop="updatedBy">-->
<!-- <el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新时间" prop="updatedTime">-->
<!-- <el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="逻辑删除标识" prop="delFlag">-->
<!-- <el-input v-model="dataForm.delFlag" 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 Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
export default {
data() {
return {
visible: false,
dataForm: {
id: '',
name: '',
sex: '',
nation: '',
birthday: '',
address: '',
idcard: '',
organ: '',
imgCode: '',
imgUrl: '',
testingResult: '',
testingTime: '',
revision: '',
createdBy: '',
createdTime: '',
updatedBy: '',
updatedTime: '',
delFlag: '',
mobile:''
},
uploadUrl: '',
loading: false,
}
},
computed: {
dataRule() {
return {
name: [
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
],
sex: [
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
],
// nation: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// birthday: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// address: [
// { 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' }
],
// organ: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// imgCode: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// imgUrl: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// testingResult: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
testingTime: [
{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' }
// ],
// delFlag: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ]
}
}
},
created() {
// this.visible = true
this.$nextTick(() => {
// this.dataForm.communityId = this.dataForm.streetId = this.dataForm.gridId = null
//
// this.hideUpload = false
this.uploadUrl = `${window.SITE_CONFIG['apiURL']}/oss/file/upload?token=${Cookies.get('token')}`
})
},
methods: {
init() {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
//
handleAvatarSuccess(res, file) {
this.loading = false
this.dataForm.imgUrl = res.data.url
},
beforeAvatarUpload(file) {
this.loading = true
},
//
getInfo() {
this.$http.get(`/custom/persontesting/${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']('/custom/persontesting/', 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>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>

266
src/views/modules/epidemic/persontesting-look.vue

@ -0,0 +1,266 @@
<template>
<el-dialog :visible.sync="visible" title="查看" :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="name" label-width="120px">
{{dataForm.name}}
</el-form-item>
<el-form-item label="手机号码:" prop="mobile" label-width="120px">
{{dataForm.mobile}}
</el-form-item>
<el-form-item label="性别:" prop="sex" label-width="120px">
{{dataForm.sex}}
</el-form-item>
<!-- <el-form-item label="民族" prop="nation" label-width="120px">-->
<!-- <el-input v-model="dataForm.nation" placeholder="民族"style="width:250px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="身份证号码:" prop="idcard" label-width="120px">
{{dataForm.idcard}}
</el-form-item>
<el-form-item label="签发机关:" prop="organ" label-width="120px">
{{dataForm.organ}}
</el-form-item>
<!-- <el-form-item label="出生日期" prop="birthday" label-width="120px">-->
<!-- <el-date-picker-->
<!-- v-model="dataForm.birthday"-->
<!-- type="date"-->
<!-- placeholder="出生日期"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- format="yyyy-MM-dd"-->
<!-- style="width:250px">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="核酸检测时间:" prop="testingTime" label-width="120px">
{{dataForm.testingTime}}
</el-form-item>
<!-- <el-form-item label="照片base64编码" prop="imgCode">-->
<!-- <el-input v-model="dataForm.imgCode" placeholder="照片base64编码"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="照片地址" prop="imgUrl">-->
<!-- <el-input v-model="dataForm.imgUrl" placeholder="照片地址"></el-input>-->
<!-- </el-form-item>-->
<el-form-item label="照片:"
v-loading="loading"
prop="imgUrl"
label-width="120px">
<el-upload class="avatar-uploader"
:action="uploadUrl"
disabled
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<img v-if="dataForm.imgUrl"
:src="dataForm.imgUrl"
class="avatar">
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="住址:" prop="address" label-width="120px">
{{dataForm.address}}
</el-form-item>
<!-- <el-form-item label="核酸接测结果" prop="testingResult">-->
<!-- <el-input v-model="dataForm.testingResult" placeholder="核酸接测结果"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="乐观锁" prop="revision">-->
<!-- <el-input v-model="dataForm.revision" placeholder="乐观锁"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建人" prop="createdBy">-->
<!-- <el-input v-model="dataForm.createdBy" placeholder="创建人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="createdTime">-->
<!-- <el-input v-model="dataForm.createdTime" placeholder="创建时间"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新人" prop="updatedBy">-->
<!-- <el-input v-model="dataForm.updatedBy" placeholder="更新人"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="更新时间" prop="updatedTime">-->
<!-- <el-input v-model="dataForm.updatedTime" placeholder="更新时间"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="逻辑删除标识" prop="delFlag">-->
<!-- <el-input v-model="dataForm.delFlag" placeholder="逻辑删除标识"></el-input>-->
<!-- </el-form-item>-->
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('返回') }}</el-button>
<!-- <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>-->
</template>
</el-dialog>
</template>
<script>
import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
name: '',
sex: '',
nation: '',
birthday: '',
address: '',
idcard: '',
organ: '',
imgCode: '',
imgUrl: '',
testingResult: '',
testingTime: '',
revision: '',
createdBy: '',
createdTime: '',
updatedBy: '',
updatedTime: '',
delFlag: ''
},
uploadUrl: '',
loading: false,
}
},
computed: {
dataRule () {
return {
name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
sex: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
// nation: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// birthday: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// address: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
idcard: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
// organ: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// imgCode: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// imgUrl: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// testingResult: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
testingTime: [
{ 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' }
// ],
// delFlag: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ]
}
}
},
created () {
// this.visible = true
this.$nextTick(() => {
// this.dataForm.communityId = this.dataForm.streetId = this.dataForm.gridId = null
//
// this.hideUpload = false
this.uploadUrl = `${window.SITE_CONFIG['apiURL']}/oss/file/upload?token=${Cookies.get('token')}`
})
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
//
handleAvatarSuccess (res, file) {
this.loading = false
this.dataForm.imgUrl = res.data.url
},
beforeAvatarUpload (file) {
this.loading = true
},
//
getInfo () {
this.$http.get(`/custom/persontesting/${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']('/custom/persontesting/', 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>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>

132
src/views/modules/epidemic/persontesting.vue

@ -0,0 +1,132 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-news__persontesting}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="姓名">
<el-input v-model="dataForm.name"
placeholder="姓名"
clearable></el-input>
</el-form-item>
<el-form-item label="身份证号码">
<el-input v-model="dataForm.idcard"
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 @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="primary"
@click="exportHandle()">信息导出</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="toReader()">核酸检测登记</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('news:persontesting:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('news:persontesting: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 type="selection" header-align="center" align="center" width="50"></el-table-column>-->
<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="id" label="ID" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="name" 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="nation" label="民族" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="birthday" label="出生日期" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="address" label="住址" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="idcard" 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="organ" label="签发机关" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="imgCode" label="照片base64编码" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="imgUrl" label="照片地址" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="testingResult" label="核酸接测结果" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="testingTime" label="核酸检测时间" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="revision" label="乐观锁" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="createdBy" label="创建人" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="createdTime" label="创建时间" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="updatedBy" label="更新人" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="updatedTime" label="更新时间" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="delFlag" 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 v-if="$hasPermission('news:persontesting:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>-->
<el-button type="text" size="small" @click="lookDetail(scope.row.id)">{{ $t('查看') }}</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>
<person-look v-if="lookVisible" ref="personLook" @refreshDataList="getDataList"></person-look>
<reader ref="reader"></reader>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './persontesting-add-or-update'
import PersonLook from './persontesting-look'
import reader from './reader'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/custom/persontesting/page',
getDataListIsPage: true,
deleteURL: '/custom/persontesting',
deleteIsBatch: true,
exportURL: '/custom/persontesting/export'
},
dataForm: {
id: ''
},
lookVisible: false
}
},
components: {
AddOrUpdate,
PersonLook,
reader
},
methods: {
lookDetail (id) {
this.lookVisible = true
this.$nextTick(() => {
this.$refs.personLook.dataForm.id = id
this.$refs.personLook.init()
})
},
toReader () {
this.$refs.reader.init()
}
}
}
</script>

256
src/views/modules/epidemic/reader.vue

@ -0,0 +1,256 @@
<template>
<el-dialog :visible.sync="visible" title="核酸检测登记" :close-on-click-modal="false" :close-on-press-escape="false" top="10vh">
<el-form>
<el-form-item>
<el-button @click="connect" :hidden="connectStatus">连接</el-button>
<!-- <el-button @click="getSamid">读安全模块号</el-button> -->
<el-button @click="readCard" :disabled="!connectStatus">读卡</el-button>
<!-- <el-button @click="disconnect" :disabled="!connectStatus">断开</el-button> -->
</el-form-item>
</el-form>
<el-form :inline="true" :rules="dataRule" :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<!-- <el-form-item label="模块号:" prop="samid">
<el-input type="text" v-model="dataForm.samid" placeholder="安全模块号" readonly></el-input>
</el-form-item> -->
<!-- <el-form-item label="读卡时间:" prop="timeElapsed">
<el-input type="text" v-model="dataForm.timeElapsed" placeholder="读卡时间" readonly></el-input>
</el-form-item> -->
<!-- <el-form-item label="证件类别:" prop="certType">
<el-input type="text" v-model="dataForm.certType" placeholder="证件类别" readonly></el-input>
</el-form-item> -->
<el-form-item label="姓名:" prop="name" label-width="100px">
<el-input type="text" v-model="dataForm.name" placeholder="姓名" readonly></el-input>
</el-form-item>
<el-form-item label="照片:" prop="imgCode" label-width="100px">
<img :hidden="!imageSrc" :src="imageSrc" style="height: 126px;"/>
<div v-show="!imageSrc" class="image-src">照片</div>
</el-form-item>
<el-form-item label="手机号:" prop="mobile" class="under-name" label-width="100px">
<el-input type="text" v-model="dataForm.mobile" placeholder="手机号"></el-input>
</el-form-item>
<el-form-item label="性别:" prop="sex" label-width="100px">
<el-input type="text" v-model="dataForm.sex" placeholder="性别" readonly></el-input>
</el-form-item>
<el-form-item label="民族:" prop="nation" label-width="100px">
<el-input type="text" v-model="dataForm.nation" placeholder="民族" readonly></el-input>
</el-form-item>
<el-form-item label="出生日期:" prop="birthday" label-width="100px">
<el-input type="text" v-model="dataForm.birthday" placeholder="出生日期" readonly></el-input>
</el-form-item>
<el-form-item label="住址:" prop="address" label-width="100px">
<el-input type="text" v-model="dataForm.address" placeholder="住址" readonly></el-input>
</el-form-item>
<el-form-item label="身份证号:" prop="idcard" label-width="100px">
<el-input type="text" v-model="dataForm.idcard" placeholder="身份证号" readonly></el-input>
</el-form-item>
<el-form-item label="签发机关:" prop="organ" label-width="100px">
<el-input type="text" v-model="dataForm.organ" placeholder="签发机关" readonly></el-input>
</el-form-item>
<!-- <el-form-item label="开始期限:" prop="effDate">
<el-input type="text" v-model="dataForm.effDate" placeholder="开始期限" readonly></el-input>
</el-form-item>
<el-form-item label="结束期限:" prop="expDate">
<el-input type="text" v-model="dataForm.expDate" placeholder="结束期限" readonly></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()" :disabled="btnAble">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import Cookies from 'js-cookie'
import debounce from 'lodash/debounce'
import axios from 'axios'
export default {
data () {
return {
btnAble: false,
visible: false,
dataForm: {
// samid: '', //
// certType: '', //
name: '', // partyName
mobile: '', //
sex: '', // gender
nation: '',
birthday: '', // bornDay
address: '', // certAddress
idcard: '', // certNumber
organ: '', // certOrg
imgCode: '', // identityPic
// effDate: '',
// expDate: '',
// result: ''
},
imageSrc: '',
connectStatus: false //
}
},
computed: {
dataRule () {
return {
name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
sex: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
nation: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
birthday: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
address: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
idcard: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
organ: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
},
created () {
// this.init()
},
methods: {
init () {
this.btnAble = false
this.visible = true
this.connect()
this.$refs['dataForm'].resetFields()
this.imageSrc = ''
},
handleClose () {
// this.disconnect()
},
formatDate (str) {
return str.substring(0,4) + '-' + str.substring(4,6) + '-' + str.substring(6,8)
},
//
connect () {
axios.get(`http://127.0.0.1:19196/OpenDevice`).then(({ data: res }) => {
if (res.resultFlag == 0) {
// this.$message({
// message: res.errorMsg,
// type: 'success'
// })
this.connectStatus = true
} else {
this.$message.error(res.errorMsg)
}
}).catch(() => {
this.$message.error('连接失败')
})
},
readCard () {
axios.get(`http://127.0.0.1:19196/readcard`).then(({ data: res }) => {
if (res.resultFlag == 0) {
// this.$message({
// message: res.errorMsg,
// type: 'success'
// })
this.dataForm.name = res.partyName
this.dataForm.sex = res.gender
this.dataForm.nation = res.nation,
this.dataForm.birthday = this.formatDate(res.bornDay)
this.dataForm.address = res.certAddress
this.dataForm.idcard = res.certNumber
this.dataForm.organ = res.certOrg
this.dataForm.imgCode = res.identityPic
this.imageSrc = 'data:image/png;base64,' + this.dataForm.imgCode
} else {
this.$message.error(res.errorMsg)
}
}).catch(() => {
this.$message.error('读取失败')
})
},
getSamid () {
axios.get(`http://127.0.0.1:19196/getsamid`).then(({ data: res }) => {
this.$message({
message: '获取安全模块号成功',
type: 'success'
})
this.visible = true
this.dataForm.samid = res.samid
}).catch(() => {
this.$message.error('获取失败')
})
},
disconnect () {
axios.get(`http://127.0.0.1:19196/CloseDevice`).then(({ data: res }) => {
if (res.resultFlag == 0) {
this.$message(res.errorMsg)
this.connectStatus = false
this.btnAble = false
this.visible = true
this.$refs['dataForm'].resetFields()
this.imageSrc = ''
} else {
this.$message.error(res.errorMsg)
}
}).catch(() => {
this.$message.error('断开失败')
})
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.btnAble = true
this.$http.post('/custom/persontesting/saveScanningInfo', this.dataForm).then(({ data: res }) => {
this.btnAble = false
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')
this.$refs['dataForm'].resetFields()
this.imageSrc = ''
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>
<style scoped>
.el-form {
position: relative;
}
.under-name {
position: absolute;
left: 0;
top: 80px;
}
.el-form--inline .el-form-item {
width: 48%;
}
.el-input {
width: 240px;
}
.image-src {
height: 126px;
width: 102px;
background-color: #eee;
display: flex;
align-items: center;
justify-content: center;
color: #999;
}
</style>

56
src/views/modules/news/notice-add-or-update.vue

@ -21,6 +21,22 @@
clearable>
</el-cascader>
</el-form-item>
<el-form-item prop="imgUrl"
v-loading="loading"
label="索引图">
<el-upload class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:on-error="handelError"
:before-upload="beforeAvatarUpload">
<img v-if="dataForm.imgUrl"
:src="dataForm.imgUrl"
class="avatar">
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="标题"
prop="noticeTitle">
<el-input v-model="dataForm.noticeTitle"
@ -76,6 +92,7 @@ export default {
noticeContent: '',
allDeptIdsShow: [],
allTypeId:[],
imgUrl: ''
},
value: '',
//
@ -101,6 +118,7 @@ export default {
gridList: [],
options: [],
moduleOptions:[],
loading: false
}
},
computed: {
@ -165,6 +183,18 @@ export default {
}
})
},
handleAvatarSuccess (res, file) {
this.loading = false
this.dataForm.imgUrl = res.data.url
this.btnAble = false
},
beforeAvatarUpload (file) {
this.loading = true
this.btnAble = true
},
handelError () {
this.loading = false
},
// ()
uploadBeforeUploadHandle (file) {
if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
@ -233,7 +263,6 @@ export default {
},
//
dataFormSubmitHandle: debounce(function () {
console.log(this.dataForm.noticeContent)
if (this.dataForm.noticeContent != null && this.dataForm.noticeContent !== undefined) {
this.dataForm.noticeContent = this.removeHTMLTag(this.dataForm.noticeContent)
if ((this.dataForm.noticeContent).length > 10000) {
@ -311,3 +340,28 @@ export default {
}
}
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
</style>

65
src/views/modules/sys/partyorgtype-add-or-update.vue

@ -7,6 +7,22 @@
<el-form-item label="党组织类型编码" prop="typeCode">
<el-input v-model="dataForm.typeCode" placeholder="类型编码" maxlength="30"></el-input>
</el-form-item>
<el-row>
<el-form-item label="图标" v-loading="loading" prop="imgUrl">
<el-upload class="avatar-uploader"
:action="uploadUrl"
:show-file-list="false"
:on-success="handleAvatarActSuccess"
:on-error="handelError"
:before-upload="beforeAvatarUpload">
<img v-if="dataForm.imgUrl"
:src="dataForm.imgUrl"
class="avatar">
<i v-else
class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-row>
<el-form-item label="排序" prop="sort">
<el-input-number v-model="dataForm.sort" :min="0" :max="99990"></el-input-number>
</el-form-item>
@ -30,15 +46,18 @@
<script>
import debounce from 'lodash/debounce'
import Cookies from 'js-cookie'
export default {
data () {
return {
visible: false,
uploadUrl: '',
dataForm: {
id: '',
typeName: '',
typeCode: '',
sort: '',
imgUrl: '',
enable: ''
},
options: [{
@ -47,7 +66,8 @@ export default {
}, {
value: '1',
label: '是'
}]
}],
loading: false
}
},
computed: {
@ -59,6 +79,9 @@ export default {
typeCode: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
imgUrl: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
sort: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
@ -73,6 +96,7 @@ export default {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.uploadUrl = `${window.SITE_CONFIG['apiURL']}/oss/file/upload?token=${Cookies.get('token')}`
if (this.dataForm.id) {
this.getInfo()
}
@ -111,7 +135,44 @@ export default {
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}, 1000, { 'leading': true, 'trailing': false }),
handleAvatarActSuccess (res, file) {
this.loading = false
this.dataForm.imgUrl = res.data.url
this.btnAble = false
},
beforeAvatarUpload (file) {
this.loading = true
this.btnAble = false
},
handelError () {
this.loading = false
}
}
}
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 80px;
height: 80px;
line-height: 80px;
text-align: center;
}
.avatar {
width: 80px;
height: 80px;
display: block;
}
</style>

23
src/views/modules/sys/partyorgtype.vue

@ -13,6 +13,23 @@
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="typeName" label="党组织类型" header-align="center" align="center"></el-table-column>
<el-table-column prop="typeCode" label="党组织类型编码" header-align="center" align="center"></el-table-column>
<el-table-column prop="imgUrl" label="图标" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<el-popover placement="right"
title=""
trigger="click"
class="big_image">
<el-image slot="reference"
min-width="30"
height="30"
v-if="scope.row.imgUrl"
:src="scope.row.imgUrl"
:alt="scope.row.imgUrl"></el-image>
<img class="big_image"
:src="scope.row.imgUrl" />
</el-popover>
</template>
</el-table-column>
<el-table-column prop="enable" label="是否启用" :formatter="enableFormat" header-align="center" align="center"></el-table-column>
<el-table-column prop="sort" label="排序" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
@ -71,3 +88,9 @@ export default {
}
}
</script>
<style scoped>
.big_image {
width: 40px;
height: 40px;
}
</style>

4
src/views/modules/vim/vaccinationinfo.vue

@ -103,11 +103,11 @@
<el-button type="primary"
@click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<el-form-item>
<!-- <el-form-item>
<el-button v-if="$hasPermission('demo:reportuserinfo:updateAge')"
type="danger"
@click="updateAddress()">更新地址</el-button>
</el-form-item>
</el-form-item>-->
<!-- <el-form-item>
<el-button type="primary"
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button>

2
src/views/modules/worklog/worklog.vue

@ -1,6 +1,6 @@
<template>
<el-card class="worklog">
<iframe :src="url" class="iframe"/>
<iframe :src="url" class="iframe" frameborder="no"/>
</el-card>
</template>

Loading…
Cancel
Save