Browse Source

Merge branch 'dev-chaxun' into test

V1.0
jiangyy 4 years ago
parent
commit
a30c994316
  1. 6
      src/assets/scss/modules/visual/personCategory.scss
  2. 11
      src/views/components/scoreRecord.vue
  3. 16
      src/views/modules/communityParty/regionalParty/finishList.vue
  4. 2
      src/views/modules/communityParty/regionalParty/units.vue
  5. 314
      src/views/modules/communityService/shzz/index.vue
  6. 283
      src/views/modules/communityService/sqzzz/index.vue
  7. 68
      src/views/modules/visual/basicinfo/personCategory/components/screen-loading/index.vue
  8. 109
      src/views/modules/visual/basicinfo/personCategory/index.vue
  9. 80
      src/views/modules/visual/basicinfo/personCategory/recordList.vue

6
src/assets/scss/modules/visual/personCategory.scss

@ -14,7 +14,8 @@
display: flex; display: flex;
// justify-content: space-around; // justify-content: space-around;
justify-content: flex-start; justify-content: flex-start;
flex-wrap: wrap; flex-wrap: nowrap;
// overflow-y: auto;
min-height: 190px; min-height: 190px;
.top-item-active { .top-item-active {
@ -22,8 +23,9 @@
} }
.top-item { .top-item {
flex: 0 0 280px;
box-sizing: border-box; box-sizing: border-box;
width: 280px; // width: 280px;
height: 190px; height: 190px;
padding: 10px 22px 14px 21px; padding: 10px 22px 14px 21px;
// background: rgba(255, 255, 255, 0); // background: rgba(255, 255, 255, 0);

11
src/views/components/scoreRecord.vue

@ -11,6 +11,7 @@
<el-date-picker v-model="timeRange" <el-date-picker v-model="timeRange"
type="daterange" type="daterange"
:clearable="false" :clearable="false"
:picker-options="pickerOptions"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@ -150,10 +151,10 @@ export default {
}, },
methods: { methods: {
async initForm (row) { async initForm (serviceId) {
this.initDate() this.initDate()
this.serviceId = row.id this.serviceId = serviceId
// //
await this.loadTable() await this.loadTable()
@ -167,8 +168,8 @@ export default {
async loadTable () { async loadTable () {
this.tableLoading = true this.tableLoading = true
// const url = "/heart /userdemand/recordList" const url = "/heart/userdemand/recordList"
const url = "http://yapi.elinkservice.cn/mock/245/heart/userdemand/recordList" // const url = "http://yapi.elinkservice.cn/mock/245/heart/userdemand/recordList"
let params = { let params = {
serviceType: this.serviceType, serviceType: this.serviceType,
serviceId: this.serviceId, serviceId: this.serviceId,
@ -226,6 +227,8 @@ export default {
let t2 = year2 + '-' + month2 + '-' + day2; let t2 = year2 + '-' + month2 + '-' + day2;
let t1 = year + '-' + month + '-' + day; let t1 = year + '-' + month + '-' + day;
// let t3 = formate(t2, style); // let t3 = formate(t2, style);
this.formData.startTime = t2 + ' 00:00:00'
this.formData.endTime = t1 + ' 23:59:59'
this.timeRange = [t2, t1] this.timeRange = [t2, t1]
}, },

16
src/views/modules/communityParty/regionalParty/finishList.vue

@ -263,7 +263,7 @@ export default {
m = '0' + m m = '0' + m
} }
let obj = { let obj = {
label: i + '月', label: m + '月',
value: m, value: m,
} }
@ -298,10 +298,10 @@ export default {
async loadTable () { async loadTable () {
this.tableLoading = true this.tableLoading = true
// const url = '/heart/icpartyunitcompletion/list' const url = '/heart/icpartyunitcompletion/list'
const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/list' // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/list'
let params = { let params = {
placePatrolRecordId: this.placePatrolRecordId unitId: this.unitId
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
@ -372,9 +372,9 @@ export default {
}, },
async addReview (row, tableIndex) { async addReview (row, tableIndex) {
// let url = "/heart/icpartyunitcompletion/save" let url = "/heart/icpartyunitcompletion/save"
let url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/save" // let url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/save"
let params = JSON.parse(JSON.stringify(row)) let params = JSON.parse(JSON.stringify(row))
@ -456,8 +456,8 @@ export default {
async deleteRecord (row, tableIndex) { async deleteRecord (row, tableIndex) {
// const url = "/heart/icpartyunitcompletion/delete" const url = "/heart/icpartyunitcompletion/delete"
const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/delete" // const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunitcompletion/delete"
let params = { let params = {
id: row.id id: row.id

2
src/views/modules/communityParty/regionalParty/units.vue

@ -463,7 +463,7 @@ export default {
handleScore (row) { handleScore (row) {
this.scoreDiaShow = true this.scoreDiaShow = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.ref_score.initForm(row) this.$refs.ref_score.initForm(row.id)
}) })
}, },

314
src/views/modules/communityService/shzz/index.vue

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

283
src/views/modules/communityService/sqzzz/index.vue

@ -2,19 +2,20 @@
<div> <div>
<div class="resi-container"> <div class="resi-container">
<el-card class="resi-card"> <el-card class="resi-card">
<el-row class="resi-row-box" :class="openSearch && 'resi-row-more'"> <el-row class="resi-row-box"
<el-row class="resi-row" :gutter="20"> :class="openSearch && 'resi-row-more'">
<el-row class="resi-row"
:gutter="20">
<el-col :span="8"> <el-col :span="8">
<div class="resi-cell"> <div class="resi-cell">
<div class="resi-cell-label">组织名称</div> <div class="resi-cell-label">组织名称</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> <div class="resi-cell-value"
<el-input :class="'resi-cell-value-radio'">
v-model="fmData.organizationName" <el-input v-model="fmData.organizationName"
class="resi-cell-input" class="resi-cell-input"
size="small" size="small"
clearable clearable
placeholder="请输入" placeholder="请输入">
>
</el-input> </el-input>
</div> </div>
</div> </div>
@ -22,15 +23,14 @@
<el-col :span="16"> <el-col :span="16">
<div class="resi-cell"> <div class="resi-cell">
<div class="resi-cell-label">创建时间</div> <div class="resi-cell-label">创建时间</div>
<div class="resi-cell-value" :class="'resi-cell-value-radio'"> <div class="resi-cell-value"
<el-date-picker :class="'resi-cell-value-radio'">
v-model="fmData.createTime" <el-date-picker v-model="fmData.createTime"
type="daterange" type="daterange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd">
>
</el-date-picker> </el-date-picker>
</div> </div>
</div> </div>
@ -39,9 +39,9 @@
</el-row> </el-row>
<el-row class="resi-search"> <el-row class="resi-search">
<el-col :span="24"> <el-col :span="24">
<el-button type="primary" size="small" @click="handleSearch" <el-button type="primary"
>查询</el-button size="small"
> @click="handleSearch">查询</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-card> </el-card>
@ -49,111 +49,120 @@
<el-card class="resi-card-table"> <el-card class="resi-card-table">
<div class="resi-row-btn"> <div class="resi-row-btn">
<el-button type="success" size="small" @click="handleAdd" <el-button type="success"
>新增</el-button size="small"
> @click="handleAdd">新增</el-button>
<el-upload <el-upload ref="upload"
ref="upload" class="upload-btn"
class="upload-btn" action="uploadUlr"
action="uploadUlr" :limit="1"
:limit="1" :with-credentials="true"
:with-credentials="true" :show-file-list="false"
:show-file-list="false" :auto-upload="true"
:auto-upload="true" :on-progress="handleProgress"
:on-progress="handleProgress" :on-success="handleExcelSuccess"
:on-success="handleExcelSuccess" :before-upload="beforeExcelUpload"
:before-upload="beforeExcelUpload" :http-request="uploadHttpRequest">
:http-request="uploadHttpRequest" <el-button type="warning"
> size="small"
<el-button type="warning" size="small" :loading="importLoading">{{ :loading="importLoading">{{
importBtnTitle importBtnTitle
}}</el-button> }}</el-button>
</el-upload> </el-upload>
<el-button @click="handleChu" type="danger" size="small" <el-button @click="handleChu"
>excel导出</el-button type="danger"
> size="small">excel导出</el-button>
</div> </div>
<el-table <el-table :data="tableData"
:data="tableData" border
border style="width: 100%"
style="width: 100%" class="resi-table"
class="resi-table" :max-height="maxTableHeight">
:max-height="maxTableHeight" <el-table-column label="序号"
> type="index"
<el-table-column label="序号" type="index" align="center" width="50" /> align="center"
<el-table-column prop="organizationName" label="组织名称"> width="50" />
<el-table-column prop="organizationName"
label="组织名称">
</el-table-column> </el-table-column>
<el-table-column prop="organizationPersonCount" label="组织人数"> <el-table-column prop="organizationPersonCount"
label="组织人数">
</el-table-column> </el-table-column>
<el-table-column prop="serviceItem" label="服务事项"> </el-table-column> <el-table-column prop="serviceItem"
<el-table-column prop="principalName" label="负责人"> </el-table-column> label="服务事项"> </el-table-column>
<el-table-column prop="principalPhone" label="联系电话"> <el-table-column prop="principalName"
label="负责人"> </el-table-column>
<el-table-column prop="principalPhone"
label="联系电话">
</el-table-column> </el-table-column>
<el-table-column prop="organizationCreatedTime" label="创建时间"> <el-table-column prop="organizationCreatedTime"
label="创建时间">
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="120"> <el-table-column fixed="right"
label="操作"
align="center"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button @click="handleWatch(scope.$index)"
@click="handleWatch(scope.$index)" type="text"
type="text" size="small">查看</el-button>
size="small" <el-button type="text"
>查看</el-button style="color:#1C6AFD;"
> size="small"
@click="handleScore(scope.row)">积分记录</el-button>
<el-button
@click="handleEdit(scope.$index)" <el-button @click="handleEdit(scope.$index)"
type="text" type="text"
size="small" size="small"
style="margin-right: 10px; color: #00a7a9" style="margin-right: 10px; color: #00a7a9">编辑</el-button>
>编辑</el-button
> <el-popconfirm title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row, scope.$index)"
<el-popconfirm @confirm="handleDel(scope.row, scope.$index)">
title="删除之后无法回复,确认删除?" <el-button slot="reference"
@onConfirm="handleDel(scope.row, scope.$index)" type="text"
@confirm="handleDel(scope.row, scope.$index)" size="small"
> style="color: #d51010">删除</el-button>
<el-button
slot="reference"
type="text"
size="small"
style="color: #d51010"
>删除</el-button
>
</el-popconfirm> </el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div> <div>
<el-pagination <el-pagination @size-change="handleSizeChange"
@size-change="handleSizeChange" @current-change="handleCurrentChange"
@current-change="handleCurrentChange" :current-page.sync="pageNo"
:current-page.sync="pageNo" :page-sizes="[20, 50, 100, 200]"
:page-sizes="[20, 50, 100, 200]" :page-size="parseInt(pageSize)"
:page-size="parseInt(pageSize)" layout="sizes, prev, pager, next"
layout="sizes, prev, pager, next" :total="total">
:total="total"
>
</el-pagination> </el-pagination>
</div> </div>
</el-card> </el-card>
<!-- 修改弹出框 --> <!-- 修改弹出框 -->
<el-dialog <el-dialog :visible.sync="formShow"
:visible.sync="formShow" :close-on-click-modal="false"
:close-on-click-modal="false" :close-on-press-escape="false"
:close-on-press-escape="false" :title="formTitle"
:title="formTitle" width="850px"
width="850px" top="5vh"
top="5vh" @closed="handleClose">
@closed="handleClose" <edit-form ref="eleEditForm"
> @dialogCancle="handleClose"
<edit-form @dialogOk="handleEditSuccess"></edit-form>
ref="eleEditForm" </el-dialog>
@dialogCancle="handleClose"
@dialogOk="handleEditSuccess" <!-- 积分记录 -->
></edit-form> <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="'party_unit'"></score-record>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -164,10 +173,11 @@ import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import editForm from "./cpts/edit"; import editForm from "./cpts/edit";
import axios from "axios"; import axios from "axios";
import scoreRecord from '../../../components/scoreRecord.vue'
export default { export default {
components: { editForm }, components: { editForm, scoreRecord },
data() { data () {
return { return {
openSearch: false, openSearch: false,
@ -189,10 +199,14 @@ export default {
importBtnTitle: "excel导入", importBtnTitle: "excel导入",
importLoading: false, importLoading: false,
//
scoreDiaTitle: '积分记录',
scoreDiaShow: false,
}; };
}, },
computed: { computed: {
maxTableHeight() { maxTableHeight () {
return this.clientHeight - 410; return this.clientHeight - 410;
}, },
...mapGetters(["clientHeight"]), ...mapGetters(["clientHeight"]),
@ -208,23 +222,23 @@ export default {
} }
}, },
}, },
mounted() { mounted () {
this.getTableData(); this.getTableData();
}, },
methods: { methods: {
// //
handleExcelSuccess(res, file) { handleExcelSuccess (res, file) {
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("resss---ppp", res); console.log("resss---ppp", res);
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}, },
handleProgress(event, file, fileList) { handleProgress (event, file, fileList) {
console.log("percentage", file.percentage); console.log("percentage", file.percentage);
}, },
beforeExcelUpload(file) { beforeExcelUpload (file) {
console.log("file", file); console.log("file", file);
const isType = file.type === "application/vnd.ms-excel"; const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer = const isTypeComputer =
@ -241,7 +255,7 @@ export default {
} }
return fileType && isLt1M; return fileType && isLt1M;
}, },
uploadHttpRequest(file) { uploadHttpRequest (file) {
this.importLoading = true; this.importLoading = true;
this.importBtnTitle = "正在上传中..."; this.importBtnTitle = "正在上传中...";
const formData = new FormData(); //FormDataappend('key', value) const formData = new FormData(); //FormDataappend('key', value)
@ -272,35 +286,35 @@ export default {
this.$refs.upload.clearFiles(); this.$refs.upload.clearFiles();
}, },
handleSizeChange(val) { handleSizeChange (val) {
console.log(`每页 ${val}`); console.log(`每页 ${val}`);
this.pageSize = val; this.pageSize = val;
window.localStorage.setItem("pageSize", val); window.localStorage.setItem("pageSize", val);
this.getTableData(); this.getTableData();
}, },
handleCurrentChange(val) { handleCurrentChange (val) {
console.log(`当前页: ${val}`); console.log(`当前页: ${val}`);
this.pageNo = val; this.pageNo = val;
this.getTableData(); this.getTableData();
}, },
handleClose() { handleClose () {
this.formShow = false; this.formShow = false;
}, },
handleSearch(val) { handleSearch (val) {
console.log(this.fmData); console.log(this.fmData);
this.pageNo = 1; this.pageNo = 1;
this.getTableData(); this.getTableData();
}, },
async handleAdd() { async handleAdd () {
this.formShow = true; this.formShow = true;
await nextTick(); await nextTick();
console.log(this.$refs); console.log(this.$refs);
this.$refs.eleEditForm.initForm("add"); this.$refs.eleEditForm.initForm("add");
}, },
async handleChu() { async handleChu () {
const url = const url =
"/heart/iccommunityselforganization/exportcommunityselforganization"; "/heart/iccommunityselforganization/exportcommunityselforganization";
const { pageSize, pageNo, fmData } = this; const { pageSize, pageNo, fmData } = this;
@ -336,23 +350,23 @@ export default {
}); });
}, },
async handleWatch(rowIndex) { async handleWatch (rowIndex) {
this.formShow = true; this.formShow = true;
await nextTick(); await nextTick();
this.$refs.eleEditForm.initForm("detail", this.tableData[rowIndex]); this.$refs.eleEditForm.initForm("detail", this.tableData[rowIndex]);
}, },
async handleEdit(rowIndex) { async handleEdit (rowIndex) {
this.formShow = true; this.formShow = true;
await nextTick(); await nextTick();
this.$refs.eleEditForm.initForm("edit", this.tableData[rowIndex]); this.$refs.eleEditForm.initForm("edit", this.tableData[rowIndex]);
}, },
handleEditSuccess() { handleEditSuccess () {
this.handleClose(); this.handleClose();
this.getTableData(); this.getTableData();
}, },
async handleDel(rowData, rowIndex) { async handleDel (rowData, rowIndex) {
console.log(rowData, rowIndex); console.log(rowData, rowIndex);
const url = const url =
"/heart/iccommunityselforganization/delcommunityselforganization"; "/heart/iccommunityselforganization/delcommunityselforganization";
@ -370,7 +384,7 @@ export default {
} }
}, },
async getTableData() { async getTableData () {
const url = const url =
"/heart/iccommunityselforganization/communityselforganizationlist"; "/heart/iccommunityselforganization/communityselforganizationlist";
const { pageSize, pageNo, fmData } = this; const { pageSize, pageNo, fmData } = this;
@ -384,12 +398,25 @@ export default {
this.total = data.total || 0; this.total = data.total || 0;
this.tableData = data.list this.tableData = data.list
? data.list.map((item) => { ? data.list.map((item) => {
return item; return item;
}) })
: []; : [];
} else { } else {
} }
}, },
//
handleScore (row) {
this.scoreDiaShow = true
this.$nextTick(() => {
this.$refs.ref_score.initForm(row.orgId)
})
},
diaClose () {
this.scoreDiaShow = false
},
}, },
}; };
</script> </script>

68
src/views/modules/visual/basicinfo/personCategory/components/screen-loading/index.vue

@ -1,68 +0,0 @@
<template>
<div class="screen-loading">
<svg width="50px"
height="50px">
<circle cx="25"
cy="25"
r="20"
fill="transparent"
stroke-width="3"
stroke-dasharray="31.415, 31.415"
stroke="#29cdff"
stroke-linecap="round">
<animateTransform attributeName="transform"
type="rotate"
values="0, 25 25;360, 25 25"
dur="1.5s"
repeatCount="indefinite" />
<animate attributeName="stroke"
values="#02bcfe;#3be6cb;#02bcfe"
dur="3s"
repeatCount="indefinite" />
</circle>
<circle cx="25"
cy="25"
r="10"
fill="transparent"
stroke-width="3"
stroke-dasharray="15.7, 15.7"
stroke="#29cdff"
stroke-linecap="round">
<animateTransform attributeName="transform"
type="rotate"
values="360, 25 25;0, 25 25"
dur="1.5s"
repeatCount="indefinite" />
<animate attributeName="stroke"
values="#3be6cb;#02bcfe;#3be6cb"
dur="3s"
repeatCount="indefinite" />
</circle>
</svg>
<div class="loading-tip">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
name: 'DvLoading'
}
</script>
<style lang="scss" scoped>
.screen-loading {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.loading-tip {
font-size: 14px;
color: #fff;
}
}
</style>

109
src/views/modules/visual/basicinfo/personCategory/index.vue

@ -1,5 +1,6 @@
<template> <template>
<div class="warning-box"> <div @click="hiddenTypeList()"
class="warning-box">
<cpt-card> <cpt-card>
<div class="title"> <div class="title">
<img src="@/assets/img/shuju/title-tip.png" /> <img src="@/assets/img/shuju/title-tip.png" />
@ -22,6 +23,7 @@
type="date" type="date"
:clearable="false" :clearable="false"
@change="handleChangeDate" @change="handleChangeDate"
:picker-options="pickerOptions"
prefix-icon="el-icon-caret-bottom" prefix-icon="el-icon-caret-bottom"
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-dd"> value-format="yyyy-MM-dd">
@ -29,38 +31,46 @@
</div> </div>
</div> </div>
<div class="warning-box-top"> <el-scrollbar style="width: 100%">
<div class="top-item" <div class="warning-box-top">
:class="{ <div class="top-item"
'top-item-active': activeIndex == index , :class="{'top-item-active': activeIndex == index}"
}" @click="onClickList(item,index)"
@click="onClickList(item,index)" v-for="(item, index) in categoryList"
v-for="(item, index) in categoryList" :key="index">
:key="index"> <div class="top-item-img">
<div class="top-item-img"> <img :src="item.dataIcon" />
<img :src="item.dataIcon" /> <div class="top-item-left">
<div class="top-item-left"> <span>{{ item.categoryName }}</span>
<span>{{ item.categoryName }}</span> <span>{{ item.total }}</span>
<span>{{ item.total }}</span>
</div>
</div>
<div class="top-item-num">
<div class="num-item">
<div>较上月</div>
<div>
<div>{{ "+"+ item.immigration }}</div>
</div> </div>
</div> </div>
<div class="num-item"> <div class="top-item-num">
<div>{{" "}}</div> <div class="num-item">
<div> <div>较上月</div>
<div>{{ "-"+ item.emigration}}</div> <div>
<div>
<span v-if=" item.immigration!==0">{{ "+" }}</span>
<span>{{ item.immigration }}</span>
</div>
</div>
</div>
<div class="num-item">
<div>{{" "}}</div>
<div>
<div>
<span v-if=" item.emigration!==0">{{ "-" }}</span>
<span>{{ item.emigration }}</span>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</el-scrollbar>
<div class="warning-box-bottom"> <div class="warning-box-bottom">
<screen-table ref="ref_recordlist"></screen-table> <screen-table ref="ref_recordlist"></screen-table>
<div class="pagination"> <div class="pagination">
@ -80,7 +90,7 @@
<script> <script>
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import screenTable from "./components/screen-table/index"; import screenTable from "./recordList";
import cptCard from "@/views/modules/visual/cpts/card"; import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick"; import nextTick from "dai-js/tools/nextTick";
@ -107,11 +117,15 @@ export default {
checkStrictly: true checkStrictly: true
}, },
pickerOptions: { //
disabledDate (time) {
return time.getTime() > (Date.now() - (24 * 60 * 60 * 1000))
}
},
dateIdShow: '', dateIdShow: '',
agencyId: '', agencyId: '',
level: '', level: '',
dateId: '',//yyyyMMdd dateId: '',//yyyyMMdd
monthId: '',//yyyyMM
categoryKey: '', categoryKey: '',
agencyInfo: {}, agencyInfo: {},
@ -133,13 +147,14 @@ export default {
}, },
methods: { methods: {
hiddenTypeList () {
this.$refs.ref_recordlist.hiddenTypeList()
},
async getApiData () { async getApiData () {
// //
await this.getCategoryData() await this.getCategoryData()
this.loadRecordList()
this.$refs.ref_recordlist.getUserwarnlist(this.monthId, this.categoryKey, this.pageNo, this.pageSize)
}, },
initData () { initData () {
var time = (new Date).getTime() - 24 * 60 * 60 * 1000; var time = (new Date).getTime() - 24 * 60 * 60 * 1000;
@ -183,13 +198,19 @@ export default {
this.pageNo = 1; this.pageNo = 1;
this.categoryKey = item.categoryKey this.categoryKey = item.categoryKey
this.$refs.ref_recordlist.getUserwarnlist(this.monthId, this.categoryKey, this.pageNo, this.pageSize) this.loadRecordList()
},
loadRecordList () {
this.$refs.ref_recordlist.getRecordlist(this.dateId, this.categoryKey, this.pageNo, this.pageSize, this.agencyId, this.level)
}, },
// //
async getCategoryData () { async getCategoryData () {
// const url = "/data/aggregator/icuser/category-data"; const url = "/data/aggregator/icuser/category-data";
const url = "http://yapi.elinkservice.cn/mock/245/data/aggregator/icuser/category-data"; // const url = "http://yapi.elinkservice.cn/mock/245/data/aggregator/icuser/category-data";
let params = { let params = {
orgType: this.level, orgType: this.level,
orgId: this.agencyId, orgId: this.agencyId,
@ -199,7 +220,7 @@ export default {
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.categoryList = data; this.categoryList = data;
if (this.categoryList.length > 0) { if (!this.categoryKey && this.categoryList.length > 0) {
this.categoryKey = this.categoryList[0].categoryKey this.categoryKey = this.categoryList[0].categoryKey
} }
@ -213,27 +234,29 @@ export default {
}, },
async handleChangeAgency (value) { async handleChangeAgency (value) {
this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label let selAgency = this.$refs["myCascader"].getCheckedNodes()[0].data
this.agencyId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : '' // this.agencyName = this.$refs["myCascader"].getCheckedNodes()[0].label
this.agencyName = selAgency.name
this.agencyId = selAgency.agencyId
this.level = selAgency.level === 'grid' ? 'grid' : 'agency'
this.getApiData() this.getApiData()
}, },
pageSizeChangeHandleNew (val) { pageSizeChangeHandleNew (val) {
this.pageNo = 1; this.pageNo = 1;
this.pageSize = val; this.pageSize = val;
this.$refs.ref_recordlist.getUserwarnlist(this.monthId, this.categoryKey, this.pageNo, this.pageSize) this.loadRecordList()
}, },
pageCurrentChangeHandleNew (val) { pageCurrentChangeHandleNew (val) {
this.pageNo = val; this.pageNo = val;
this.getUserwarnlist(); this.loadRecordList()
this.$refs.ref_recordlist.getUserwarnlist(this.monthId, this.categoryKey, this.pageNo, this.pageSize)
}, },
}, },
watch: { watch: {
dateIdShow () { dateIdShow () {
let dataArray = this.dateIdShow.split('-') let dataArray = this.dateIdShow.split('-')
this.dateId = dataArray.join('') this.dateId = dataArray.join('')
this.monthId = this.dateId.substring(0, 6)
}, },
}, },

80
src/views/modules/visual/basicinfo/personCategory/components/screen-table/index.vue → src/views/modules/visual/basicinfo/personCategory/recordList.vue

@ -15,10 +15,10 @@
{{ '调整时间' }} {{ '调整时间' }}
</div> </div>
<div class="table-header-th table-header-select" <div class="table-header-th table-header-select"
style="width:10%" style="width:10%">
@click.stop="handleShowType()"> <span @click.stop="handleShowType()">{{ typeShow }}</span>
<span>{{ typeShow }}</span> <img @click.stop="handleShowType()"
<img src="@/assets/img/xiala.png" /> src="@/assets/img/xiala.png" />
<div class="user_list" <div class="user_list"
v-show="showTypeSelect"> v-show="showTypeSelect">
@ -61,7 +61,7 @@
<screen-loading v-if="visibleLoading">加载中</screen-loading> <screen-loading v-if="visibleLoading">加载中</screen-loading>
<div class="no-data" <div class="no-data"
v-if="tableData.length == 0 && !visibleLoading"> v-if="tableData.length == 0 && !visibleLoading">
<img src="../../../../../../../assets/img/modules/visual/noData.png" <img src="@/assets/img/modules/visual/noData.png"
alt="" alt=""
srcset="" srcset=""
class="no-data-img" /> class="no-data-img" />
@ -72,7 +72,7 @@
</template> </template>
<script> <script>
import ScreenLoading from "../screen-loading/index"; import ScreenLoading from "../../components/screen-loading/index";
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import Vue from "vue"; import Vue from "vue";
@ -104,9 +104,9 @@ export default {
label: '新增' label: '新增'
}, },
], ],
typeShow: '类别', typeShow: '全部',
selType: '', selType: '',
monthId: '', dateId: '',
categoryKey: '', categoryKey: '',
pageNo: '', pageNo: '',
pageSize: '', pageSize: '',
@ -117,31 +117,70 @@ export default {
}, },
mounted () { mounted () {
this.loadTypeList()
}, },
created () { }, created () { },
methods: { methods: {
hiddenTypeList () {
this.showTypeSelect = false
},
async loadTypeList () {
//
const url = "/sys/dict/data/dictlist"
let params = {
dictType: 'ic_user_change_type'
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.typeList = []
this.typeList.push(
{
label: '全部',
value: ''
}
)
data.forEach(element => {
this.typeList.push(element)
});
} else {
this.$message.error(msg)
}
},
// //
async getUserwarnlist (monthId, categoryKey, pageNo, pageSize) { async getRecordlist (dateId, categoryKey, pageNo, pageSize, orgId, orgType) {
this.visibleLoading = true this.visibleLoading = true
if (monthId) { if (dateId) {
this.monthId = monthId this.dateId = dateId
this.categoryKey = categoryKey this.categoryKey = categoryKey
this.pageNo = pageNo this.pageNo = pageNo
this.pageSize = pageSize this.pageSize = pageSize
this.orgId = orgId
this.orgType = orgType
} }
let tableData = []; let tableData = [];
// const url = "/temp/record-list"; const url = "/epmetuser/icuserchangerecord/category-analysis-list";
const url = "http://yapi.elinkservice.cn/mock/245/temp/record-list"; // const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icuserchangerecord/category-analysis-list";
let params = { let params = {
categoryKey: this.categoryKey, categoryKey: this.categoryKey,
monthId: this.monthId, dateId: this.dateId,
type: this.selType, type: this.selType,
pageNo: this.pageNo, pageNo: this.pageNo,
pageSize: this.pageSize, pageSize: this.pageSize,
orgId: this.orgId,
orgType: this.orgType
}; };
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
@ -170,7 +209,7 @@ export default {
handleClickType (value, label) { handleClickType (value, label) {
this.typeShow = label this.typeShow = label
this.selType = value this.selType = value
this.getUserwarnlist() this.getRecordlist()
this.showTypeSelect = !this.showTypeSelect this.showTypeSelect = !this.showTypeSelect
}, },
@ -204,11 +243,15 @@ export default {
} }
&-select { &-select {
position: relative; position: relative;
cursor: pointer;
// display: flex; // display: flex;
// justify-content: space-around; // justify-content: space-around;
> span {
cursor: pointer;
}
> img { > img {
cursor: pointer;
margin-left: 10px; margin-left: 10px;
// width: 10px; // width: 10px;
// height: 10px; // height: 10px;
@ -286,7 +329,7 @@ export default {
} }
&-tr:hover { &-tr:hover {
background: url("../../../../../../../assets/img/modules/visual/hover-bac.png") background: url("../../../../../assets/img/modules/visual/hover-bac.png")
no-repeat center; no-repeat center;
background-size: 100% 100%; background-size: 100% 100%;
} }
@ -323,6 +366,7 @@ export default {
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 400; font-weight: 400;
color: #ffffff; color: #ffffff;
cursor: pointer;
.user_item_content { .user_item_content {
display: flex; display: flex;
Loading…
Cancel
Save