Browse Source

Merge branch 'dev-fangyi' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev-fangyi

shibei_master
13176889840 3 years ago
parent
commit
c2b85953ff
  1. 4
      src/assets/scss/modules/management/epidemic.scss
  2. 543
      src/views/modules/base/epidemic/veroFocus/veroFocusForm.vue

4
src/assets/scss/modules/management/epidemic.scss

@ -14,6 +14,10 @@
text-align: center; text-align: center;
} }
.main_tab {
margin: 10px 35px;
}
.div_main { .div_main {
width: 100%; width: 100%;

543
src/views/modules/base/epidemic/veroFocus/veroFocusForm.vue

@ -1,185 +1,187 @@
<template> <template>
<div> <div>
<div class="dialog-h-content scroll-h"> <div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true" <el-tabs v-model="activeName"
:model="formData" type="card"
:rules="dataRule" class="main_tab"
:disabled="formType==='look'" @tab-click="handleClick">
class="form"> <el-tab-pane label="逐个添加"
name="first">
<el-form-item label="录入方式" <el-form ref="ref_form"
label-width="150px" :inline="true"
style="display: block"> :model="formData"
<el-radio-group v-model="enterType" :rules="dataRule"
@change="handleChangeEnterType"> :disabled="formType==='look'"
class="form">
<el-radio :label="'1'">手动输入</el-radio>
<el-radio :label="'2'">选择居民</el-radio> <el-form-item label="姓名"
prop="name"
</el-radio-group> label-width="150px"
style="display: block">
</el-form-item> <el-input class="item_width_2"
placeholder="请输入姓名"
<el-form-item label="所属网格" clearable
style="display: block" :disabled="isFromResi"
label-width="150px"> v-model="formData1.name">
<el-select class="item_width_2" </el-input>
v-model.trim="formData.gridId"
placeholder="请选择" </el-form-item>
:disabled="!isFromResi"
clearable> <el-form-item label="手机号"
<el-option v-for="item in gridList" prop="phone"
@click.native="handleSelGrid(item.value)" label-width="150px"
:key="item.value" style="display: block">
:label="item.label" <el-input class="item_width_2"
:value="item.value"> placeholder="请输入手机号"
</el-option> clearable
</el-select> :disabled="isFromResi"
</el-form-item> v-model="formData1.phone">
<el-form-item label="居民" </el-input>
prop="personId" </el-form-item>
style="display: block" <el-form-item label="身份证号"
label-width="150px"> prop="idCard"
<el-select class="item_width_2" label-width="150px"
v-model.trim="formData.personId" style="display: block">
placeholder="请选择" <el-input class="item_width_2"
filterable placeholder="请输入身份证号"
:disabled="!isFromResi" clearable
clearable> :disabled="isFromResi"
<el-option v-for="item in personList" v-model="formData1.idCard">
@click.native="handleSelPerson(item)" </el-input>
:key="item.demandUserId" </el-form-item>
:label="item.demandUserName" <el-form-item label="备注"
:value="item.demandUserId"> prop="remark"
</el-option> label-width="150px"
</el-select> style="display: block">
</el-form-item> <el-input class="item_width_1"
type="textarea"
<el-form-item label="姓名" maxlength="500"
prop="name" show-word-limit
label-width="150px" :autosize="{ minRows: 2, maxRows: 5 }"
style="display: block"> clearable
<el-input class="item_width_2" placeholder="请输入通知备注"
placeholder="请输入姓名" v-model="formData1.remark"></el-input>
clearable </el-form-item>
:disabled="isFromResi"
v-model="formData.name"> <el-form-item label="通知渠道"
</el-input> prop="noticeWay"
label-width="150px"
</el-form-item> style="display: block">
<el-checkbox-group v-model="formData1.noticeWay">
<el-form-item label="手机号" <el-checkbox key="1"
prop="phone" label="1">小程序通知</el-checkbox>
label-width="150px" <el-checkbox key="2"
style="display: block"> label="2">短信通知</el-checkbox>
<el-input class="item_width_2"
placeholder="请输入手机号" </el-checkbox-group>
clearable </el-form-item>
:disabled="isFromResi"
v-model="formData.phone"> <el-form-item label="通知内容"
</el-input> prop="noticeContent"
</el-form-item> label-width="150px"
<el-form-item label="身份证号" style="display: block">
prop="idCard" <el-input class="item_width_1"
label-width="150px" type="textarea"
style="display: block"> maxlength="1000"
<el-input class="item_width_2" show-word-limit
placeholder="请输入身份证号" :autosize="{ minRows: 4, maxRows: 10 }"
clearable clearable
:disabled="isFromResi" placeholder="请输入通知内容"
v-model="formData.idCard"> v-model="formData1.noticeContent"></el-input>
</el-input> </el-form-item>
</el-form-item>
</el-form>
<el-form-item label="检测时间" </el-tab-pane>
style="display: block" <el-tab-pane label="批量添加"
prop="checkTime" name="second">
label-width="150px"> <el-form :inline="true"
<el-date-picker class="item_width_2" :model="formData"
v-model="formData.checkTime" ref="ref_searchform"
format="yyyy-MM-dd HH:mm" :label-width="'90px'">
value-format="yyyy-MM-dd HH:mm" <el-form-item label="所属网格"
type="datetime" label-width="150px">
clearable <el-select class="item_width_2"
placeholder="选择时间"> v-model.trim="selGridId"
</el-date-picker> placeholder="请选择"
</el-form-item> clearable>
<el-option v-for="item in gridList"
<el-form-item label="检测地点" :key="item.value"
prop="address" :label="item.label"
label-width="150px" :value="item.value">
style="display: block"> </el-option>
<el-input class="item_width_1" </el-select>
placeholder="请输入检测地点" </el-form-item>
clearable <el-form-item label="疫苗接种次数小于"
v-model="formData.address"> label-width="150px">
</el-input> <el-input-number v-model="veroNum"
</el-form-item> :min="0"
:max="20"
<el-form-item label="检测结果" label="疫苗接种次数小于"></el-input-number>
prop="type" </el-form-item>
label-width="150px" <el-button style="margin-left:30px"
style="display: block"> size="small"
<el-radio-group v-model="formData.result"> class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-radio :label="'1'">阴性</el-radio> <el-button style="margin-left:10px"
<el-radio :label="'2'">阳性</el-radio> size="small"
class="diy-button--reset"
</el-radio-group> @click="resetSearch">重置</el-button>
</el-form-item>
</el-form>
<el-form-item class="block"
label-width="150px" <el-table ref="ref_table"
style="display: block" class="table"
label="添加附件" :data="tableData"
prop="attach"> border
:height="tableHeight"
<el-upload class="upload-demo" v-loading="tableLoading"
:action="uploadUlr" :header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
accept=".doc,.pdf,.xls,.docx,.xlsx" @select-all="selectAll"
:on-success="handleFileSuccess" @selection-change="selectionChange"
:on-remove="handleFileRemove" style="width: 100%">
:on-preview="handleFileDownload" <el-table-column type="selection"
:limit="3" width="55"></el-table-column>
:before-upload="beforeUpload" <el-table-column label="序号"
:file-list="fileList"> header-align="center"
<el-button size="small" align="center"
:disabled="fileList.length==3" type="index"
type="primary">点击上传</el-button> width="50"></el-table-column>
<div slot="tip"
class="el-upload__tip">最多三个附件只能上传wordexcelpdf文件</div> <el-table-column prop="personInCharge"
</el-upload> header-align="center"
</el-form-item> align="center"
label="姓名"
<el-form-item label="通知渠道" width="90">
prop="noticeWay" </el-table-column>
label-width="150px" <el-table-column prop="mobile"
style="display: block"> header-align="center"
<el-checkbox-group v-model="formData.noticeWay"> align="center"
<el-checkbox key="1" label="手机号"
label="1">小程序通知</el-checkbox> width="110">
<el-checkbox key="2" </el-table-column>
label="2">短信通知</el-checkbox> <el-table-column prop="gridNames"
header-align="center"
</el-checkbox-group> align="center"
</el-form-item> label="身份证"
min-width="170">
<el-form-item label="通知内容" </el-table-column>
prop="noticeContent"
label-width="150px" </el-table>
style="display: block"> <div>
<el-input class="item_width_1" <el-pagination @size-change="handleSizeChange"
type="textarea" @current-change="handleCurrentChange"
maxlength="1000" :current-page.sync="pageNo"
show-word-limit :page-sizes="[20, 50, 100, 200]"
:autosize="{ minRows: 4, maxRows: 10 }" :page-size="pageSize"
clearable layout="sizes, prev, pager, next, total"
placeholder="请输入通知内容" :total="total">
v-model="formData.noticeContent"></el-input> </el-pagination>
</el-form-item> </div>
</el-form> </el-tab-pane>
</el-tabs>
</div> </div>
<div class="form_div_btn"> <div class="form_div_btn">
@ -207,32 +209,36 @@ export default {
data () { data () {
return { return {
formType: 'add', // addeditdetail formType: 'add', // addeditdetail
enterType: '1',//1 2
isFromResi: false,// activeName: "second",
gridList: [], gridList: [],
personList: [], selGridId: '',
veroNum: null,
btnDisable: false, btnDisable: false,
natId: '', formData1: {
formData: {
name: '', name: '',
idCard: '', idCard: '',
phone: '', phone: '',
checkTime: '', remark: '',
address: '',
result: '',
noticeWay: [], noticeWay: [],
noticeContent: '', noticeContent: '',
attachmentList: []
}, },
formData2: {
personList: [],
remark: '',
noticeWay: [],
noticeContent: '',
},
tableData: [],
tableLoading: false,
fileList: [], selection: [],//
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile',
dialogImageUrl: '',
dialogVisible: false,
} }
@ -261,73 +267,86 @@ export default {
}, },
handleChangeEnterType (value) { handleSearch () {
this.formData.name = '' this.loadTable()
this.formData.phone = ''
this.formData.idCard = ''
this.formData.gridId = ''
this.formData.personId = ''
if (value === '2') {
this.isFromResi = true
} else {
this.isFromResi = false
}
}, },
async loadGrid () { async loadTable () {
const url = "/gov/org/customergrid/gridoption" this.tableLoading = true
const url = "/gov/org/placepatrolteam/getlist"
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/getlist"
let params = { let params = {
agencyId: this.agencyId pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
this.gridList = data this.total = data.total
this.tableData = data.list
this.tableData.forEach(item => {
if (item.time) {
let timeArray = item.time.split(' ')
item.time = timeArray[0]
}
});
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
this.tableLoading = false
},
handleSelectAll (selectAllFlag) {
this.$refs.ref_table.clearSelection();
if (selectAllFlag) {
this.tableData.forEach(row => {
if (row.showBtn) {
this.$refs.ref_table.toggleRowSelection(row);
}
});
}
},
selectAll (selection) {
this.selection = selection
if (selection.length === this.validTableDataNum) {
this.selAllFlag = true
} else {
this.selAllFlag = false
}
},
handleClick () {
}, },
async handleSelGrid (value) {
const url = "/epmetuser/icresiuser/demandusers" async loadGrid () {
const url = "/gov/org/customergrid/gridoption"
let params = { let params = {
agencyId: this.agencyId, agencyId: this.agencyId
gridId: value
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
this.personList = data this.gridList = data
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
async handleSelPerson (personItem) {
this.formData.name = personItem.demandUserName
this.formData.phone = personItem.demandUserMobile
this.formData.idCard = personItem.idCard
},
handleTime () {
if (!this.formData.remindTime) return
var startAt = new Date(this.formData.remindTime) * 1000 / 1000;
if (startAt < Date.now()) {
this.formData.remindTime = dateFormats('YYYY-mm-dd HH:MM', new Date());
}
},
async loadFormData () { async loadFormData () {
@ -357,8 +376,6 @@ export default {
}, },
async handleComfirm () { async handleComfirm () {
this.btnDisable = true this.btnDisable = true
setTimeout(() => { setTimeout(() => {
this.btnDisable = false this.btnDisable = false
@ -431,61 +448,7 @@ export default {
}, },
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'xls'
&& extension !== 'xlsx'
&& extension !== 'doc'
&& extension !== 'docx'
&& extension !== 'pdf') {
this.$message.error('只能上传word、excel、pdf文件!')
return false
}
if (!isLt1M) {
this.$message.error('上传文件大小不能超过 5MB!')
}
return isLt1M
},
handleFileRemove (file) {
if (file && file.status === "success") {
this.fileList.splice(this.fileList.findIndex(item => item.uid === file.uid), 1)
}
},
handleFileSuccess (res, file) {
if (res.code === 0 && res.msg === 'success') {
const array = file.name.split('.')
const fileType = array[array.length - 1]
file.fileName = file.name
file.attachmentUrl = res.data.url
file.attachmentSize = file.size
file.attachmentType = 'doc'
file.attachmentFormat = fileType
this.fileList.push(file)
console.log(this.fileList)
} else this.$message.error(res.msg)
},
//
handleFileDownload (file) {
var a = document.createElement('a');
var event = new MouseEvent('click');
a.download = file.fileName;
console.log(a)
a.href = file.attachmentUrl;
a.dispatchEvent(event);
},
resetData () { resetData () {
this.natId = '' this.natId = ''
@ -503,6 +466,18 @@ export default {
} }
}, },
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
// //
startLoading () { startLoading () {
loading = Loading.service({ loading = Loading.service({

Loading…
Cancel
Save