|
|
@ -2,19 +2,20 @@ |
|
|
|
<div> |
|
|
|
<div class="resi-container"> |
|
|
|
<el-card class="resi-card"> |
|
|
|
<el-row class="resi-row-box" :class="openSearch && 'resi-row-more'"> |
|
|
|
<el-row class="resi-row" :gutter="20"> |
|
|
|
<el-row class="resi-row-box" |
|
|
|
:class="openSearch && 'resi-row-more'"> |
|
|
|
<el-row class="resi-row" |
|
|
|
:gutter="20"> |
|
|
|
<el-col :span="8"> |
|
|
|
<div class="resi-cell"> |
|
|
|
<div class="resi-cell-label">组织名称</div> |
|
|
|
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> |
|
|
|
<el-input |
|
|
|
v-model="fmData.societyName" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入" |
|
|
|
> |
|
|
|
<div class="resi-cell-value" |
|
|
|
:class="'resi-cell-value-radio'"> |
|
|
|
<el-input v-model="fmData.societyName" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入"> |
|
|
|
</el-input> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -23,14 +24,13 @@ |
|
|
|
<el-col :span="8"> |
|
|
|
<div class="resi-cell"> |
|
|
|
<div class="resi-cell-label">负责人</div> |
|
|
|
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> |
|
|
|
<el-input |
|
|
|
v-model="fmData.personInCharge" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入" |
|
|
|
> |
|
|
|
<div class="resi-cell-value" |
|
|
|
:class="'resi-cell-value-radio'"> |
|
|
|
<el-input v-model="fmData.personInCharge" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入"> |
|
|
|
</el-input> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -39,14 +39,13 @@ |
|
|
|
<el-col :span="8"> |
|
|
|
<div class="resi-cell"> |
|
|
|
<div class="resi-cell-label">联系电话</div> |
|
|
|
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> |
|
|
|
<el-input |
|
|
|
v-model="fmData.mobile" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入" |
|
|
|
> |
|
|
|
<div class="resi-cell-value" |
|
|
|
:class="'resi-cell-value-radio'"> |
|
|
|
<el-input v-model="fmData.mobile" |
|
|
|
class="resi-cell-input" |
|
|
|
size="small" |
|
|
|
clearable |
|
|
|
placeholder="请输入"> |
|
|
|
</el-input> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -56,15 +55,14 @@ |
|
|
|
<el-col :span="24"> |
|
|
|
<div class="resi-cell"> |
|
|
|
<div class="resi-cell-label">服务时间</div> |
|
|
|
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> |
|
|
|
<el-date-picker |
|
|
|
v-model="fmData.serviceTime" |
|
|
|
type="daterange" |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
> |
|
|
|
<div class="resi-cell-value" |
|
|
|
:class="'resi-cell-value-radio'"> |
|
|
|
<el-date-picker v-model="fmData.serviceTime" |
|
|
|
type="daterange" |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
value-format="yyyy-MM-dd"> |
|
|
|
</el-date-picker> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -73,9 +71,9 @@ |
|
|
|
</el-row> |
|
|
|
<el-row class="resi-search"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-button type="primary" size="small" @click="handleSearch" |
|
|
|
>查询</el-button |
|
|
|
> |
|
|
|
<el-button type="primary" |
|
|
|
size="small" |
|
|
|
@click="handleSearch">查询</el-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-card> |
|
|
@ -83,109 +81,117 @@ |
|
|
|
|
|
|
|
<el-card class="resi-card-table"> |
|
|
|
<div class="resi-row-btn"> |
|
|
|
<el-button type="success" size="small" @click="handleAdd" |
|
|
|
>新增</el-button |
|
|
|
> |
|
|
|
<el-upload |
|
|
|
ref="upload" |
|
|
|
class="upload-btn" |
|
|
|
action="uploadUlr" |
|
|
|
:limit="1" |
|
|
|
:with-credentials="true" |
|
|
|
:show-file-list="false" |
|
|
|
:auto-upload="true" |
|
|
|
:on-progress="handleProgress" |
|
|
|
:on-success="handleExcelSuccess" |
|
|
|
:before-upload="beforeExcelUpload" |
|
|
|
:http-request="uploadHttpRequest" |
|
|
|
> |
|
|
|
<el-button type="warning" size="small" :loading="importLoading">{{ |
|
|
|
<el-button type="success" |
|
|
|
size="small" |
|
|
|
@click="handleAdd">新增</el-button> |
|
|
|
<el-upload ref="upload" |
|
|
|
class="upload-btn" |
|
|
|
action="uploadUlr" |
|
|
|
:limit="1" |
|
|
|
:with-credentials="true" |
|
|
|
:show-file-list="false" |
|
|
|
:auto-upload="true" |
|
|
|
:on-progress="handleProgress" |
|
|
|
:on-success="handleExcelSuccess" |
|
|
|
:before-upload="beforeExcelUpload" |
|
|
|
:http-request="uploadHttpRequest"> |
|
|
|
<el-button type="warning" |
|
|
|
size="small" |
|
|
|
:loading="importLoading">{{ |
|
|
|
importBtnTitle |
|
|
|
}}</el-button> |
|
|
|
</el-upload> |
|
|
|
|
|
|
|
<el-button @click="handleChu" type="danger" size="small" |
|
|
|
>excel导出</el-button |
|
|
|
> |
|
|
|
<el-button @click="handleChu" |
|
|
|
type="danger" |
|
|
|
size="small">excel导出</el-button> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
|
:data="tableData" |
|
|
|
border |
|
|
|
style="width: 100%" |
|
|
|
class="resi-table" |
|
|
|
:max-height="maxTableHeight" |
|
|
|
> |
|
|
|
<el-table-column label="序号" type="index" align="center" width="50" /> |
|
|
|
<el-table-column prop="societyName" label="社会组织名称"> |
|
|
|
<el-table :data="tableData" |
|
|
|
border |
|
|
|
style="width: 100%" |
|
|
|
class="resi-table" |
|
|
|
:max-height="maxTableHeight"> |
|
|
|
<el-table-column label="序号" |
|
|
|
type="index" |
|
|
|
align="center" |
|
|
|
width="50" /> |
|
|
|
<el-table-column prop="societyName" |
|
|
|
label="社会组织名称"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="serviceMatters" label="服务事项"> |
|
|
|
<el-table-column prop="serviceMatters" |
|
|
|
label="服务事项"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="personInCharge" label="负责人"> |
|
|
|
<el-table-column prop="personInCharge" |
|
|
|
label="负责人"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="mobile" label="负责人电话"> </el-table-column> |
|
|
|
<el-table-column prop="serviceTime" label="服务时间"> </el-table-column> |
|
|
|
<el-table-column fixed="right" label="操作" align="center" width="120"> |
|
|
|
<el-table-column prop="mobile" |
|
|
|
label="负责人电话"> </el-table-column> |
|
|
|
<el-table-column prop="serviceTime" |
|
|
|
label="服务时间"> </el-table-column> |
|
|
|
<el-table-column fixed="right" |
|
|
|
label="操作" |
|
|
|
align="center" |
|
|
|
width="180"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
@click="handleWatch(scope.$index)" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
>查看</el-button |
|
|
|
> |
|
|
|
|
|
|
|
<el-button |
|
|
|
@click="handleEdit(scope.$index)" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
style="margin-right: 10px; color: #00a7a9" |
|
|
|
>编辑</el-button |
|
|
|
> |
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
title="删除之后无法回复,确认删除?" |
|
|
|
@onConfirm="handleDel(scope.row, scope.$index)" |
|
|
|
@confirm="handleDel(scope.row, scope.$index)" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
slot="reference" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
style="color: #d51010" |
|
|
|
>删除</el-button |
|
|
|
> |
|
|
|
<el-button @click="handleWatch(scope.$index)" |
|
|
|
type="text" |
|
|
|
size="small">查看</el-button> |
|
|
|
<el-button type="text" |
|
|
|
style="color:#00A7A9;" |
|
|
|
size="small" |
|
|
|
@click="handleScore(scope.row)">积分记录</el-button> |
|
|
|
|
|
|
|
<el-button @click="handleEdit(scope.$index)" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
style="margin-right: 10px; color: #00a7a9">编辑</el-button> |
|
|
|
|
|
|
|
<el-popconfirm title="删除之后无法回复,确认删除?" |
|
|
|
@onConfirm="handleDel(scope.row, scope.$index)" |
|
|
|
@confirm="handleDel(scope.row, scope.$index)"> |
|
|
|
<el-button slot="reference" |
|
|
|
type="text" |
|
|
|
size="small" |
|
|
|
style="color: #d51010">删除</el-button> |
|
|
|
</el-popconfirm> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<div> |
|
|
|
<el-pagination |
|
|
|
@size-change="handleSizeChange" |
|
|
|
@current-change="handleCurrentChange" |
|
|
|
:current-page.sync="pageNo" |
|
|
|
:page-sizes="[20, 50, 100, 200]" |
|
|
|
:page-size="parseInt(pageSize)" |
|
|
|
layout="sizes, prev, pager, next" |
|
|
|
:total="total" |
|
|
|
> |
|
|
|
<el-pagination @size-change="handleSizeChange" |
|
|
|
@current-change="handleCurrentChange" |
|
|
|
:current-page.sync="pageNo" |
|
|
|
:page-sizes="[20, 50, 100, 200]" |
|
|
|
:page-size="parseInt(pageSize)" |
|
|
|
layout="sizes, prev, pager, next" |
|
|
|
:total="total"> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
<!-- 修改弹出框 --> |
|
|
|
<el-dialog |
|
|
|
:visible.sync="formShow" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-press-escape="false" |
|
|
|
:title="formTitle" |
|
|
|
width="850px" |
|
|
|
top="5vh" |
|
|
|
@closed="handleClose" |
|
|
|
> |
|
|
|
<edit-form |
|
|
|
ref="eleEditForm" |
|
|
|
@dialogCancle="handleClose" |
|
|
|
@dialogOk="handleEditSuccess" |
|
|
|
></edit-form> |
|
|
|
<el-dialog :visible.sync="formShow" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-press-escape="false" |
|
|
|
:title="formTitle" |
|
|
|
width="850px" |
|
|
|
top="5vh" |
|
|
|
@closed="handleClose"> |
|
|
|
<edit-form ref="eleEditForm" |
|
|
|
@dialogCancle="handleClose" |
|
|
|
@dialogOk="handleEditSuccess"></edit-form> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 积分记录 --> |
|
|
|
<el-dialog :visible.sync="scoreDiaShow" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:close-on-press-escape="false" |
|
|
|
:title="scoreDiaTitle" |
|
|
|
width="1050px" |
|
|
|
top="5vh" |
|
|
|
@closed="diaClose"> |
|
|
|
<score-record ref="ref_score" |
|
|
|
:serviceType="'social_org'"></score-record> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -196,10 +202,11 @@ import nextTick from "dai-js/tools/nextTick"; |
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
import editForm from "./cpts/edit"; |
|
|
|
import axios from "axios"; |
|
|
|
import scoreRecord from '../../../components/scoreRecord.vue' |
|
|
|
|
|
|
|
export default { |
|
|
|
components: { editForm }, |
|
|
|
data() { |
|
|
|
components: { editForm, scoreRecord }, |
|
|
|
data () { |
|
|
|
return { |
|
|
|
openSearch: false, |
|
|
|
|
|
|
@ -223,10 +230,14 @@ export default { |
|
|
|
|
|
|
|
importBtnTitle: "excel导入", |
|
|
|
importLoading: false, |
|
|
|
|
|
|
|
//积分记录 |
|
|
|
scoreDiaTitle: '积分记录', |
|
|
|
scoreDiaShow: false, |
|
|
|
}; |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
maxTableHeight() { |
|
|
|
maxTableHeight () { |
|
|
|
return this.clientHeight - 450; |
|
|
|
}, |
|
|
|
...mapGetters(["clientHeight"]), |
|
|
@ -242,23 +253,23 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
mounted () { |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 上传大图标成功 |
|
|
|
handleExcelSuccess(res, file) { |
|
|
|
handleExcelSuccess (res, file) { |
|
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
|
console.log("resss---ppp", res); |
|
|
|
} else { |
|
|
|
this.$message.error(res.msg); |
|
|
|
} |
|
|
|
}, |
|
|
|
handleProgress(event, file, fileList) { |
|
|
|
handleProgress (event, file, fileList) { |
|
|
|
console.log("percentage", file.percentage); |
|
|
|
}, |
|
|
|
|
|
|
|
beforeExcelUpload(file) { |
|
|
|
beforeExcelUpload (file) { |
|
|
|
console.log("file", file); |
|
|
|
const isType = file.type === "application/vnd.ms-excel"; |
|
|
|
const isTypeComputer = |
|
|
@ -275,7 +286,7 @@ export default { |
|
|
|
} |
|
|
|
return fileType && isLt1M; |
|
|
|
}, |
|
|
|
uploadHttpRequest(file) { |
|
|
|
uploadHttpRequest (file) { |
|
|
|
this.importLoading = true; |
|
|
|
this.importBtnTitle = "正在上传中..."; |
|
|
|
const formData = new FormData(); //FormData对象,添加参数只能通过append('key', value)的形式添加 |
|
|
@ -304,35 +315,35 @@ export default { |
|
|
|
this.$refs.upload.clearFiles(); |
|
|
|
}, |
|
|
|
|
|
|
|
handleSizeChange(val) { |
|
|
|
handleSizeChange (val) { |
|
|
|
console.log(`每页 ${val} 条`); |
|
|
|
this.pageSize = val; |
|
|
|
window.localStorage.setItem("pageSize", val); |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
handleCurrentChange(val) { |
|
|
|
handleCurrentChange (val) { |
|
|
|
console.log(`当前页: ${val}`); |
|
|
|
this.pageNo = val; |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
|
|
|
|
handleClose() { |
|
|
|
handleClose () { |
|
|
|
this.formShow = false; |
|
|
|
}, |
|
|
|
handleSearch(val) { |
|
|
|
handleSearch (val) { |
|
|
|
console.log(this.fmData); |
|
|
|
this.pageNo = 1; |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
|
|
|
|
async handleAdd() { |
|
|
|
async handleAdd () { |
|
|
|
this.formShow = true; |
|
|
|
await nextTick(); |
|
|
|
console.log(this.$refs); |
|
|
|
this.$refs.eleEditForm.initForm("add"); |
|
|
|
}, |
|
|
|
|
|
|
|
async handleChu() { |
|
|
|
async handleChu () { |
|
|
|
const url = "/heart/societyorg/export"; |
|
|
|
const { pageSize, pageNo, fmData } = this; |
|
|
|
axios({ |
|
|
@ -367,23 +378,23 @@ export default { |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
async handleWatch(rowIndex) { |
|
|
|
async handleWatch (rowIndex) { |
|
|
|
this.formShow = true; |
|
|
|
await nextTick(); |
|
|
|
this.$refs.eleEditForm.initForm("detail", this.tableData[rowIndex]); |
|
|
|
}, |
|
|
|
|
|
|
|
async handleEdit(rowIndex) { |
|
|
|
async handleEdit (rowIndex) { |
|
|
|
this.formShow = true; |
|
|
|
await nextTick(); |
|
|
|
this.$refs.eleEditForm.initForm("edit", this.tableData[rowIndex]); |
|
|
|
}, |
|
|
|
handleEditSuccess() { |
|
|
|
handleEditSuccess () { |
|
|
|
this.handleClose(); |
|
|
|
this.getTableData(); |
|
|
|
}, |
|
|
|
|
|
|
|
async handleDel(rowData, rowIndex) { |
|
|
|
async handleDel (rowData, rowIndex) { |
|
|
|
console.log(rowData, rowIndex); |
|
|
|
const url = "/heart/societyorg/del"; |
|
|
|
const { tableData } = this; |
|
|
@ -400,7 +411,7 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
async getTableData() { |
|
|
|
async getTableData () { |
|
|
|
const url = "/heart/societyorg/getlist"; |
|
|
|
const { pageSize, pageNo, fmData } = this; |
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
@ -413,14 +424,27 @@ export default { |
|
|
|
this.total = data.total || 0; |
|
|
|
this.tableData = data.list |
|
|
|
? data.list.map((item) => { |
|
|
|
item.serviceTime = |
|
|
|
item.serviceStartTime + "至" + item.serviceEndTime; |
|
|
|
return item; |
|
|
|
}) |
|
|
|
item.serviceTime = |
|
|
|
item.serviceStartTime + "至" + item.serviceEndTime; |
|
|
|
return item; |
|
|
|
}) |
|
|
|
: []; |
|
|
|
} else { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
//积分记录 |
|
|
|
handleScore (row) { |
|
|
|
this.scoreDiaShow = true |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.ref_score.initForm(row.societyId) |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
diaClose () { |
|
|
|
|
|
|
|
this.scoreDiaShow = false |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
</script> |
|
|
|