Browse Source

Merge branch 'dev-fangyi' into test

feature
jiangyy 4 years ago
parent
commit
ebadfaff07
  1. 46
      src/views/modules/base/epidemic/natFocus/natFocusAdd.vue
  2. 27
      src/views/modules/base/epidemic/natFocus/natFocusEdit.vue
  3. 48
      src/views/modules/base/epidemic/natFocus/natFocusList.vue
  4. 6
      src/views/modules/base/epidemic/natFocus/nfNoticeList.vue
  5. 6
      src/views/modules/base/epidemic/natFocus/nfSendNotice.vue
  6. 9
      src/views/modules/base/epidemic/natFocus/nfVisiteList.vue
  7. 14
      src/views/modules/base/epidemic/natInfo/natForm.vue
  8. 328
      src/views/modules/base/epidemic/travel.vue
  9. 111
      src/views/modules/base/epidemic/travelForm.vue
  10. 12
      src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue
  11. 5
      src/views/modules/base/epidemic/veroFocus/veroFocusEdit.vue
  12. 8
      src/views/modules/base/epidemic/veroFocus/veroFocusList.vue
  13. 8
      src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue

46
src/views/modules/base/epidemic/natFocus/natFocusAdd.vue

@ -46,6 +46,17 @@
v-model="formData1.idCard"> v-model="formData1.idCard">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="关注原因"
prop="reason"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入关注原因"
clearable
v-model="formData1.reason">
</el-input>
</el-form-item>
<el-form-item label="备注" <el-form-item label="备注"
prop="remark" prop="remark"
label-width="150px" label-width="150px"
@ -60,7 +71,8 @@
v-model="formData1.remark"></el-input> v-model="formData1.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -76,7 +88,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -216,6 +229,17 @@
style="display: block"> style="display: block">
<span> {{selectionAll.length}}</span> <span> {{selectionAll.length}}</span>
</el-form-item> </el-form-item>
<el-form-item label="关注原因"
prop="reason"
label-width="100px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入关注原因"
clearable
v-model="formData2.reason">
</el-input>
</el-form-item>
<el-form-item label="备注" <el-form-item label="备注"
prop="remark" prop="remark"
label-width="100px" label-width="100px"
@ -230,7 +254,8 @@
v-model="formData2.remark"></el-input> v-model="formData2.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="100px" label-width="100px"
style="display: block"> style="display: block">
@ -246,7 +271,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="100px" label-width="100px"
style="display: block"> style="display: block">
@ -302,10 +328,11 @@ export default {
}, },
formData1: { formData1: {
attentionType: 1, attentionType: 2,
name: '', name: '',
idCard: '', idCard: '',
mobile: '', mobile: '',
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],
@ -314,7 +341,8 @@ export default {
}, },
formData2: { formData2: {
attentionType: 1, attentionType: 2,
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],
@ -644,15 +672,17 @@ export default {
name: '', name: '',
idCard: '', idCard: '',
mobile: '', mobile: '',
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],
content: '', content: '',
attentionType: 1, attentionType: 2,
} }
this.formData2 = { this.formData2 = {
attentionType: 1, attentionType: 2,
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],

27
src/views/modules/base/epidemic/natFocus/natFocusEdit.vue

@ -44,6 +44,17 @@
v-model="formData.idCard"> v-model="formData.idCard">
</el-input> --> </el-input> -->
</el-form-item> </el-form-item>
<el-form-item label="关注原因"
prop="reason"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入关注原因"
clearable
v-model="formData.reason">
</el-input>
</el-form-item>
<el-form-item label="备注" <el-form-item label="备注"
prop="remark" prop="remark"
label-width="150px" label-width="150px"
@ -59,7 +70,8 @@
v-model="formData.remark"></el-input> v-model="formData.remark"></el-input>
</el-form-item> </el-form-item>
<div v-if=" formType!=='detail'"> <div v-if=" formType!=='detail'">
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -75,7 +87,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -125,10 +138,11 @@ export default {
btnDisable: false, btnDisable: false,
formData: { formData: {
attentionType: 1, attentionType: 2,
name: '', name: '',
idCard: '', idCard: '',
mobile: '', mobile: '',
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],
@ -142,6 +156,10 @@ export default {
}, },
destroyed () {
},
methods: { methods: {
async initForm (formType, row) { async initForm (formType, row) {
@ -149,6 +167,7 @@ export default {
this.$refs['ref_form1'].resetFields(); this.$refs['ref_form1'].resetFields();
row.channel = [] row.channel = []
row.content = '' row.content = ''
row.attentionType = 2
row.isSelChannel = false row.isSelChannel = false
this.formData = JSON.parse(JSON.stringify(row)) this.formData = JSON.parse(JSON.stringify(row))
@ -210,9 +229,11 @@ export default {
this.veroId = '' this.veroId = ''
this.formData = { this.formData = {
attentionType: 2,
name: '', name: '',
idCard: '', idCard: '',
mobile: '', mobile: '',
reason: '',
remark: '', remark: '',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],

48
src/views/modules/base/epidemic/natFocus/natFocusList.vue

@ -38,19 +38,24 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="关注原因"
prop="mobile">
<el-input v-model="formData.reason"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入关注原因">
</el-input>
<el-form-item label="接种针次" </el-form-item>
prop="vaccinationCount"> <el-form-item label="备注"
<el-select class="list_item_width_1" prop="remark">
v-model.trim="formData.vaccinationCount" <el-input v-model="formData.remark"
placeholder="请选择" size="small"
clearable> class="list_item_width_1"
<el-option v-for="item in natNumList" clearable
:key="item.value" placeholder="请输入备注">
:label="item.label" </el-input>
:value="item.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
@ -94,7 +99,8 @@
size="small" size="small"
@click="handleExport">导出</el-button> @click="handleExport">导出</el-button>
<el-button style="margin-left:15px" <el-button v-if="false"
style="margin-left:15px"
class="diy-button--more" class="diy-button--more"
size="small" size="small"
@click="handleSendNotice">发送通知</el-button> @click="handleSendNotice">发送通知</el-button>
@ -140,10 +146,10 @@
label="身份证" label="身份证"
min-width="170"> min-width="170">
</el-table-column> </el-table-column>
<el-table-column prop="vaccinationCount" <el-table-column prop="reason"
header-align="center" header-align="center"
align="center" align="center"
label="接种针次" label="关注原因"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column prop="remark" <el-table-column prop="remark"
@ -223,6 +229,7 @@
<el-dialog :visible.sync="addFormShow" <el-dialog :visible.sync="addFormShow"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:destroy-on-close="true"
title="新增" title="新增"
width="1050px" width="1050px"
top="5vh" top="5vh"
@ -312,11 +319,12 @@ export default {
agencyId: '', agencyId: '',
formData: { formData: {
attentionType: 1,//21 attentionType: 2,//21
name: '', name: '',
mobile: '', mobile: '',
idCard: '', idCard: '',
vaccinationCount: '', remark: '',
reason: '',
}, },
natNumList: [], natNumList: [],
@ -513,7 +521,7 @@ export default {
this.visiteListFormShow = true this.visiteListFormShow = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ref_visitelist.initTable(row) this.$refs.ref_visitelist.initTable(row, '2')
}) })
@ -557,7 +565,7 @@ export default {
idCards.push(element.idCard) idCards.push(element.idCard)
}); });
let params = { let params = {
attentionType: 1, attentionType: 2,
idCards: idCards idCards: idCards
} }
@ -578,7 +586,7 @@ export default {
// //
resetSearch () { resetSearch () {
this.formData = { this.formData = {
attentionType: 1,//21 attentionType: 2,//21
name: '', name: '',
mobile: '', mobile: '',
idCard: '', idCard: '',

6
src/views/modules/base/epidemic/natFocus/nfNoticeList.vue

@ -89,13 +89,13 @@ export default {
//form //form
async loadTable () { async loadTable () {
this.tableLoading = true this.tableLoading = true
// const url = "/epmetuser/icNotice/page" const url = "/epmetuser/icNotice/page"
const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNotice/page" // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNotice/page"
let params = { let params = {
idCard: this.idCard, idCard: this.idCard,
pageNo: this.pageNo, pageNo: this.pageNo,
pageSize: this.pageSize, pageSize: this.pageSize,
origin: '1' origin: '2'
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)

6
src/views/modules/base/epidemic/natFocus/nfSendNotice.vue

@ -8,7 +8,8 @@
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -24,7 +25,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">

9
src/views/modules/base/epidemic/natFocus/nfVisiteList.vue

@ -133,7 +133,7 @@ export default {
idCard: '', idCard: '',
name: '', name: '',
mobile: '', mobile: '',
origin: '1' origin: '2'
}, },
dialogVisible: false, dialogVisible: false,
@ -147,11 +147,12 @@ export default {
methods: { methods: {
async initTable (row) { async initTable (row, origin) {
this.formData.idCard = row.idCard this.formData.idCard = row.idCard
this.formData.name = row.name this.formData.name = row.name
this.formData.mobile = row.mobile this.formData.mobile = row.mobile
this.formData.origin = origin
await this.loadTable() await this.loadTable()
@ -168,7 +169,7 @@ export default {
idCard: this.formData.idCard, idCard: this.formData.idCard,
pageNo: this.pageNo, pageNo: this.pageNo,
pageSize: this.pageSize, pageSize: this.pageSize,
origin: '1' origin: '2'
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -223,7 +224,7 @@ export default {
let params = { let params = {
idCard: this.formData.idCard, idCard: this.formData.idCard,
name: this.formData.name, name: this.formData.name,
origin: '2'
} }
app.ajax.exportFilePost( app.ajax.exportFilePost(

14
src/views/modules/base/epidemic/natInfo/natForm.vue

@ -123,7 +123,7 @@
</el-form-item> </el-form-item>
<el-form-item label="检测结果" <el-form-item label="检测结果"
prop="type" prop="natResult"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-radio-group v-model="formData.natResult"> <el-radio-group v-model="formData.natResult">
@ -160,7 +160,8 @@
</el-form-item> </el-form-item>
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -168,16 +169,17 @@
<el-checkbox v-model="formData.isSelChannel" <el-checkbox v-model="formData.isSelChannel"
key="0" key="0"
label="0">小程序通知</el-checkbox> label="0">小程序通知</el-checkbox>
<!-- <el-checkbox-group v-model="formData.channel"> <el-checkbox-group v-model="formData.channel">
<el-checkbox key="0" <el-checkbox key="0"
label="0">小程序通知</el-checkbox> label="0">小程序通知</el-checkbox>
<el-checkbox key="1" <el-checkbox key="1"
label="1">短信通知</el-checkbox> label="1">短信通知</el-checkbox>
</el-checkbox-group> --> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -607,7 +609,7 @@ export default {
{ required: false }, { required: false },
], ],
natResult: [ natResult: [
{ required: true }, { required: true, message: '检测结果不能为空', trigger: 'blur' },
], ],
channel: [ channel: [

328
src/views/modules/base/epidemic/travel.vue

@ -84,7 +84,7 @@
size="small" size="small"
@click="handleAdd">新增</el-button> @click="handleAdd">新增</el-button>
<el-button style="float:left" <el-button
class="diy-button--export" class="diy-button--export"
size="small" size="small"
@click="handleExportModule">下载模板</el-button> @click="handleExportModule">下载模板</el-button>
@ -96,16 +96,26 @@
accept=".xls,.xlsx" accept=".xls,.xlsx"
:limit="1" :limit="1"
:on-exceed="handleExceed" :on-exceed="handleExceed"
:http-request="uploadFile"> :http-request="uploadHttpRequest">
<el-button style="margin-left:10px" <el-button size="small"
size="small" style="margin-left: 10px"
class="diy-button--delete">导入</el-button> class="diy-button--delete"
:loading="importLoading">{{importBtnTitle}}</el-button>
</el-upload> </el-upload>
<el-button style="float:left;margin-left:10px" <el-button style="margin-left:10px"
class="diy-button--reset" class="diy-button--reset"
size="small" size="small"
@click="handleExport">导出</el-button> :loading="exportBtn"
@click="handleExport">{{ exportBtnTitle }}</el-button>
<el-button style="margin-left:15px"
class="diy-button--more"
size="small"
@click="handleSendNotice">发送通知</el-button>
<el-button style="margin-left:15px"
class="diy-button--more"
size="small"
@click="handleDeletes">取消关注</el-button>
</div> </div>
<el-table class="table" <el-table class="table"
@ -114,7 +124,10 @@
:height="tableHeight" :height="tableHeight"
v-loading="tableLoading" v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}" :header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%"> style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column type="selection"
width="55"></el-table-column>
<el-table-column label="序号" <el-table-column label="序号"
header-align="center" header-align="center"
align="center" align="center"
@ -125,7 +138,7 @@
header-align="center" header-align="center"
align="center" align="center"
label="姓名" label="姓名"
width="90"> width="100">
</el-table-column> </el-table-column>
<el-table-column prop="mobile" <el-table-column prop="mobile"
header-align="center" header-align="center"
@ -178,7 +191,7 @@
label="备注" label="备注"
min-width="120"> min-width="120">
</el-table-column> </el-table-column>
<el-table-column prop="heSuanCheck" <el-table-column prop="heSuanCheckDesc"
header-align="center" header-align="center"
align="center" align="center"
label="核酸检测关注名单" label="核酸检测关注名单"
@ -197,15 +210,41 @@
class="div-table-button--detail" class="div-table-button--detail"
size="small" size="small"
@click="handleDetail(scope.row)">查看</el-button> @click="handleDetail(scope.row)">查看</el-button>
<el-button type="text" <el-button v-if="scope.row.userType != 'resi'" type="text"
class="div-table-button--edit" class="div-table-button--edit"
size="small" size="small"
@click="handleEdit(scope.row)">修改</el-button> @click="handleEdit(scope.row)">修改</el-button>
<el-button type="text" <el-popover popper-class="btn-popper"
placement="bottom"
style="margin-left:10px"
width="20"
trigger="click">
<div class="more-btn">
<el-button type="text"
class="div-table-button--detail--noline"
size="small"
@click="handleNoticeList(scope.row)">通知记录</el-button>
</div>
<div class="more-btn">
<el-button type="text"
class="div-table-button--detail--noline"
size="small"
@click="handleVisiteList(scope.row) ">随访记录</el-button>
</div>
<div v-if="scope.row.userType != 'resi'" class="more-btn">
<el-button type="text"
class="div-table-button--delete--noline " class="div-table-button--delete--noline "
size="small" size="small"
@click="handleDelete(scope.row)">删除</el-button> @click="handleDelete(scope.row)">删除</el-button>
</div>
<el-button type="text"
size="small"
class="div-table-button--more"
slot="reference">更多<i class="el-icon-caret-bottom"></i></el-button>
</el-popover>
</template> </template>
</el-table-column> </el-table-column>
@ -231,17 +270,55 @@
top="5vh" top="5vh"
class="dialog-h" class="dialog-h"
@closed="diaClose"> @closed="diaClose">
<travel-form ref="ref_form" <travel-form v-if="formShow" ref="ref_form"
@dialogCancle="addFormCancle" @dialogCancle="addFormCancle"
@dialogOk="addFormOk"></travel-form> @dialogOk="addFormOk"></travel-form>
</el-dialog> </el-dialog>
<!-- 发送通知弹出框 -->
<el-dialog :visible.sync="sendNoticeFormShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="发送通知"
width="1050px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<nf-send-notice ref="ref_sendnotice"
@dialogCancle="diaClose"></nf-send-notice>
</el-dialog>
<!-- 通知记录弹出框 -->
<el-dialog :visible.sync="noticeListFormShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="通知记录"
width="1050px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<nf-notice-list ref="ref_noticelist"
@dialogCancle="diaClose"></nf-notice-list>
</el-dialog>
<!-- 随访记录弹出框 -->
<el-dialog :visible.sync="visiteListFormShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="随访记录"
width="1050px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<nf-visite-list ref="ref_visitelist"
@dialogCancle="diaClose"></nf-visite-list>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import travelForm from './travelForm' import travelForm from './travelForm'
import nfNoticeList from './natFocus/nfNoticeList'
import nfSendNotice from './natFocus/nfSendNotice'
import nfVisiteList from './natFocus/nfVisiteList'
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
@ -250,6 +327,13 @@ let loading // 加载动画
export default { export default {
data () { data () {
return { return {
sendNoticeFormShow: false,
visiteListFormShow: false,
noticeListFormShow: false,
exportBtn: false,
exportBtnTitle: '导出',
importBtnTitle: '导入',
importLoading: false,
loading: false, loading: false,
total: 0, total: 0,
pageSize: 20, pageSize: 20,
@ -258,7 +342,7 @@ export default {
sHeight: 0, sHeight: 0,
agencyId: '', agencyId: '',
selectionAll: [],
timeRange: [], timeRange: [],
formData: { formData: {
name: '',// name: '',//
@ -278,7 +362,10 @@ export default {
} }
}, },
components: { components: {
travelForm travelForm,
nfNoticeList,
nfSendNotice,
nfVisiteList
}, },
async created () { async created () {
@ -300,8 +387,10 @@ export default {
this.loadTable() this.loadTable()
}, },
handleSelectionChange(val) {
console.log('val----', val)
this.selectionAll = val
},
async loadTable () { async loadTable () {
this.tableLoading = true this.tableLoading = true
@ -347,8 +436,84 @@ export default {
}, },
diaClose () { diaClose () {
this.$refs.ref_form.resetData() // this.$refs.ref_form.resetData()
this.formShow = false this.formShow = false
this.sendNoticeFormShow = false
this.noticeListFormShow = false
this.visiteListFormShow = false
},
handleNoticeList (row) {
this.noticeListFormShow = true
this.$nextTick(() => {
this.$refs.ref_noticelist.initTable(row.idCard)
})
},
handleVisiteList (row) {
this.visiteListFormShow = true
this.$nextTick(() => {
this.$refs.ref_visitelist.initTable(row, '0')
})
},
handleSendNotice () {
if (this.selectionAll.length === 0) {
this.$message.info('请选择要通知的人员')
return false
}
this.sendNoticeFormShow = true
this.$nextTick(() => {
this.$refs.ref_sendnotice.initForm(this.selectionAll)
})
},
async handleDeletes (row) {
if (this.selectionAll.length === 0) {
this.$message.info('请选择要取消关注的名单')
return false
}
this.$confirm("确认取消关注选择的名单?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteFocus(row)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async deleteFocus (row) {
const url = "/epmetuser/icEpidemicSpecialAttention/cancel-attention"
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/del"
let idCards = []
this.selectionAll.forEach(element => {
idCards.push(element.idCard)
});
let params = {
attentionType: 0,
idCards: idCards
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message({
type: "success",
message: "操作成功"
});
this.loadTable()
} else {
this.$message.error(msg)
}
}, },
handleDetail (row) { handleDetail (row) {
@ -446,27 +611,48 @@ export default {
// //
async handleExport () { async handleExport () {
let title = this.agencyObj.label this.exportBtn = true
title = title + '—房屋列表' this.exportBtnTitle = '正在导出...'
const url = "/gov/org/house/exporthouseinfo"
let params = { let params = {
ownerName: this.ownerName, ...this.formData
ownerPhone: this.ownerPhone,
buildingId: this.agencyObj.id
} }
app.ajax.exportFilePost( // .post('epmetuser/icresiuser/exportExcel', params)
url, // await axios({
params, // url: window.SITE_CONFIG['apiURL'] + '/epmetuser/tripreport/export',
(data, rspMsg) => { // // url: 'epmetuser/icresiuser/exportExcel',
// method: 'post',
this.download(data, title + '.xls') // data: params,
}, // responseType: 'blob'
(rspMsg, data) => { // })
this.$message.error(rspMsg); await this.$http({
} method: 'POST',
); url: '/epmetuser/tripreport/export',
responseType: 'blob',
data: params
})
.then(res => {
console.log('resllll', res)
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
})
.catch((err) => {
console.log('获取导出情失败', err)
this.$message.error('获取导出失败')
})
this.exportBtnTitle = '导出'
this.exportBtn = false
}, },
@ -496,24 +682,40 @@ export default {
}, },
handleExportModule () { async handleExportModule () {
let title = '' let title = ''
title = '房屋模板' title = '房屋模板'
const url = "/gov/org/house/exporttemplate" const url = "/epmetuser/tripreport/template-download"
let params = {} let params = {}
await this.$http({
app.ajax.exportFilePost( method: 'POST',
url, url,
params, responseType: 'blob',
(data, rspMsg) => { data: params
})
this.download(data, title + '.xls') .then(res => {
}, console.log('res----dddd', res)
(rspMsg, data) => { // this.download(res.data, title + '.xls')
this.$message.error(rspMsg); if (res.headers["content-disposition"]) {
} let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1])
); console.log('filename', fileName)
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
var url = window.URL.createObjectURL(blob)
var aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) //
window.URL.revokeObjectURL(url) //blob
} else this.$message.error('下载失败')
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
}, },
// //
@ -536,6 +738,32 @@ export default {
handleExceed (files, fileList) { handleExceed (files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`) this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`)
}, },
async uploadHttpRequest (file) {
this.importLoading = true
this.importBtnTitle = '正在上传中...'
this.$message({
showClose: true,
message: '导入中,请到系统管理-导入记录中查看进度',
duration: 0
})
const formData = new FormData() //FormDataappend('key', value)
formData.append('file', file.file) //
await this.$http
.post('/epmetuser/tripreport/import', formData).then(res => {
console.log('res-up', res)
if (res.data.code == 0 && res.data.msg == 'success') {
// this.$message.success('')
this.loadTable()
} else this.$message.error(res.data.msg)
}).catch(err => {
console.log('失败', err)
file.onError() //
// this.$message.error('')
})
this.importLoading = false
this.importBtnTitle = '导入'
this.$refs.upload.clearFiles()
},
async uploadFile () { async uploadFile () {
if (this.fileName == "") { if (this.fileName == "") {

111
src/views/modules/base/epidemic/travelForm.vue

@ -104,19 +104,8 @@
clearable clearable
:disabled="isFromResi" :disabled="isFromResi"
v-model="formData.presentAddress" /> v-model="formData.presentAddress" />
<el-select v-else class="item_width_2" <el-cascader v-else ref="nowArea" class="item_width_2" :props="areaProps"
v-model.trim="formData.presentAddress" v-model="nowAllCode" clearable @change="handleNowArea"></el-cascader>
placeholder="请选择"
filterable
clearable>
<el-option v-for="item in personList"
@click.native="handleSelPerson(item)"
:key="item.demandUserId"
:label="item.demandUserName"
:value="item.demandUserId">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="详细地址" <el-form-item label="详细地址"
prop="detailAddress" prop="detailAddress"
@ -129,30 +118,9 @@
v-model="formData.detailAddress"> v-model="formData.detailAddress">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="来自地区" prop="sourceAddress" style="display: block" label-width="150px">
label="来自地区" <el-cascader ref="sourceArea" v-model="sourceAllCode" class="item_width_2" :props="areaProps"
prop="sourceAddress" @change="handleSourceArea" clearable></el-cascader>
style="display: block"
label-width="150px">
<!-- <el-input class="item_width_2"
placeholder="请输入来自地区"
clearable
:disabled="isFromResi"
v-model="formData.sourceAddress">
</el-input> -->
<el-cascader :props="areaProps"></el-cascader>
<!-- <el-select class="item_width_2"
v-model.trim="formData.sourceAddress"
placeholder="请选择"
filterable
clearable>
<el-option v-for="item in personList"
@click.native="handleSelPerson(item)"
:key="item.demandUserId"
:label="item.demandUserName"
:value="item.demandUserId">
</el-option>
</el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="来到本地时间" <el-form-item label="来到本地时间"
@ -224,7 +192,6 @@
</el-form> </el-form>
</div> </div>
<div class="form_div_btn"> <div class="form_div_btn">
<el-button size="small" <el-button size="small"
@click="handleCancle"> </el-button> @click="handleCancle"> </el-button>
@ -235,15 +202,6 @@
@click="handleComfirm('ref_form')"> </el-button> @click="handleComfirm('ref_form')"> </el-button>
</div> </div>
<el-dialog :visible.sync="dialogVisible"
width="550px"
top="5vh"
append-to-body>
<img width="100%"
:src="dialogImageUrl"
alt="">
</el-dialog>
</div> </div>
</template> </template>
@ -288,7 +246,8 @@ export default {
personList: [], personList: [],
btnDisable: false, btnDisable: false,
sourceAllCode: [], // code
nowAllCode: [], // code
icNatId: '', icNatId: '',
formData: { formData: {
gridId: '', gridId: '',
@ -302,9 +261,9 @@ export default {
presentAddress: '', presentAddress: '',
presentAddressCode: '', presentAddressCode: '',
detailAddress: '', detailAddress: '',
sourceAddressCode: '370203', sourceAddressCode: '',
presentAddressPathCode: '', presentAddressPathCode: '',
sourceAddress: '市北区', sourceAddress: '',
sourceAddressPathCode: '', sourceAddressPathCode: '',
arriveDate: '', arriveDate: '',
remark: '', remark: '',
@ -319,10 +278,10 @@ export default {
{ required: true, message: '姓名不能为空', trigger: 'blur' } { required: true, message: '姓名不能为空', trigger: 'blur' }
], ],
idCard: [ idCard: [
{ validator: checkIdCard, trigger: 'blur' } { required: true, validator: checkIdCard, trigger: 'blur' }
], ],
mobile: [ mobile: [
{ validator: checkMObile, trigger: 'blur' }, { required: true, validator: checkMObile, trigger: 'blur' },
], ],
presentAddress: [ presentAddress: [
{ required: true, message: '现居地不能为空', trigger: 'blur' }, { required: true, message: '现居地不能为空', trigger: 'blur' },
@ -355,12 +314,18 @@ export default {
methods: { methods: {
lzayLoadArea(node, resolve) { lzayLoadArea(node, resolve) {
this.getArea(node, resolve) this.getArea(node, resolve)
// setTimeout(() => {
// }, 1000)
}, },
async initForm (type, row) { async initForm (type, row) {
console.log('row----', row) console.log('row----', row)
if (type != 'add') { if (type != 'add') {
this.formData = { ...row, channel: [], content: '' } this.formData = { ...row, channel: [], content: '' }
this.sourceAllCode = row.sourceAddressPathCode && row.sourceAddressPathCode.split(',')
if (row.userType == 'icresi') this.isFromResi = true if (row.userType == 'icresi') this.isFromResi = true
else this.nowAllCode = row.presentAddressPathCode.split(',')
} }
this.formData.agencyId = this.agencyId this.formData.agencyId = this.agencyId
@ -386,7 +351,35 @@ export default {
} }
}, },
handleSourceArea(val) {
console.log('val-----', val)
console.log('label-----', this.$refs.sourceArea.getCheckedNodes())
if (val.length > 0) {
const labels = this.$refs.sourceArea.getCheckedNodes()[0].pathLabels
this.formData.sourceAddressCode = val[val.length - 1]
this.formData.sourceAddress = labels.join('-')
this.formData.sourceAddressPathCode = val.join(',')
} else {
this.formData.sourceAddressCode = ''
this.formData.sourceAddress = ''
this.formData.sourceAddressPathCode = ''
}
},
handleNowArea(val) {
console.log('val-----', val)
console.log('label-----', this.$refs.nowArea.getCheckedNodes())
if (val.length > 0) {
const labels = this.$refs.nowArea.getCheckedNodes()[0].pathLabels
this.formData.presentAddressCode = val[val.length - 1]
this.formData.presentAddress = labels.join('-')
this.formData.presentAddressPathCode = val.join(',')
} else {
this.formData.presentAddressCode = ''
this.formData.presentAddress = ''
this.formData.presentAddressPathCode = ''
}
},
async loadGrid () { async loadGrid () {
const url = "/gov/org/customergrid/gridoption" const url = "/gov/org/customergrid/gridoption"
@ -426,10 +419,9 @@ export default {
async getArea (node, resolve) { async getArea (node, resolve) {
const url = "/commonservice/areacode/nextarea" const url = "/commonservice/areacode/nextarea"
let params = { let params = {
parentLevel: this.agencyId, parentLevel: node.data ? node.data.level : '',
parentAreaCode: node.data ? node.data.value : '' parentAreaCode: node.data ? node.data.code : ''
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -438,8 +430,9 @@ export default {
const nodes = data.map(item => ({ const nodes = data.map(item => ({
value: item.areaCode, // value: item.areaCode, //
label: item.areaName, label: item.areaName,
code1: item.parentCode, code: item.areaCode,
leaf: node.level >= 5 // 5 level: item.level,
leaf: node.level >= 4 // 5
})) }))
resolve(nodes) resolve(nodes)
@ -615,6 +608,8 @@ export default {
this.formData.presentAddressCode = '' this.formData.presentAddressCode = ''
this.formData.sourceAddressPathCode = '' this.formData.sourceAddressPathCode = ''
this.formData.presentAddressPathCode = '' this.formData.presentAddressPathCode = ''
this.sourceAllCode = []
this.nowAllCode = []
}, },
// //
startLoading () { startLoading () {

12
src/views/modules/base/epidemic/veroFocus/veroFocusAdd.vue

@ -60,7 +60,8 @@
v-model="formData1.remark"></el-input> v-model="formData1.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -76,7 +77,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -230,7 +232,8 @@
v-model="formData2.remark"></el-input> v-model="formData2.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="100px" label-width="100px"
style="display: block"> style="display: block">
@ -246,7 +249,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="100px" label-width="100px"
style="display: block"> style="display: block">

5
src/views/modules/base/epidemic/veroFocus/veroFocusEdit.vue

@ -59,7 +59,8 @@
v-model="formData.remark"></el-input> v-model="formData.remark"></el-input>
</el-form-item> </el-form-item>
<div v-if=" formType!=='detail'"> <div v-if=" formType!=='detail'">
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -149,7 +150,7 @@ export default {
this.$refs['ref_form1'].resetFields(); this.$refs['ref_form1'].resetFields();
row.channel = [] row.channel = []
row.content = '' row.content = ''
row.attentionType = '1' row.attentionType = 1
row.isSelChannel = false row.isSelChannel = false
this.formData = JSON.parse(JSON.stringify(row)) this.formData = JSON.parse(JSON.stringify(row))

8
src/views/modules/base/epidemic/veroFocus/veroFocusList.vue

@ -94,7 +94,8 @@
size="small" size="small"
@click="handleExport">导出</el-button> @click="handleExport">导出</el-button>
<el-button style="margin-left:15px" <el-button v-if="false"
style="margin-left:15px"
class="diy-button--more" class="diy-button--more"
size="small" size="small"
@click="handleSendNotice">发送通知</el-button> @click="handleSendNotice">发送通知</el-button>
@ -210,7 +211,7 @@
<el-pagination @size-change="handleSizeChange" <el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :current-page.sync="pageNo"
:page-sizes="[5, 50, 100, 200]" :page-sizes="[20, 50, 100, 200]"
:page-size="pageSize" :page-size="pageSize"
layout="sizes, prev, pager, next, total" layout="sizes, prev, pager, next, total"
:total="total"> :total="total">
@ -223,6 +224,7 @@
<el-dialog :visible.sync="addFormShow" <el-dialog :visible.sync="addFormShow"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:destroy-on-close="true"
title="新增" title="新增"
width="1050px" width="1050px"
top="5vh" top="5vh"
@ -303,7 +305,7 @@ export default {
return { return {
loading: false, loading: false,
total: 0, total: 0,
pageSize: 5, pageSize: 20,
pageNo: 1, pageNo: 1,
tableLoading: false, tableLoading: false,

8
src/views/modules/base/epidemic/veroFocus/vfSendNotice.vue

@ -8,7 +8,8 @@
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="通知渠道" <el-form-item v-if="false"
label="通知渠道"
prop="channel" prop="channel"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -24,7 +25,8 @@
</el-checkbox-group> --> </el-checkbox-group> -->
</el-form-item> </el-form-item>
<el-form-item label="通知内容" <el-form-item v-if="false"
label="通知内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
@ -73,7 +75,7 @@ export default {
btnDisable: false, btnDisable: false,
formData: { formData: {
origin: '1', origin: '2',
isSelChannel: false, isSelChannel: false,
channel: [], channel: [],
content: '', content: '',

Loading…
Cancel
Save