Browse Source

自组织

feature
tianqian 3 years ago
parent
commit
8b9d8ede2a
  1. 43
      src/views/modules/shequzhili/tuceng/yingji/zizuzhi/addForm.vue
  2. 41
      src/views/modules/shequzhili/tuceng/yingji/zizuzhi/index.vue
  3. 250
      src/views/modules/shequzhili/tuceng/yingji/zizuzhi/scoreRecord.vue

43
src/views/modules/shequzhili/tuceng/yingji/zizuzhi/addForm.vue

@ -29,6 +29,7 @@
class="u-item-width-normal" class="u-item-width-normal"
size="small" size="small"
clearable clearable
type="number"
placeholder="请输入" placeholder="请输入"
></el-input> ></el-input>
</el-form-item> </el-form-item>
@ -36,7 +37,9 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="组织成员" prop="organizationPersonnel"> <el-form-item label="组织成员" prop="organizationPersonnel">
<div class="m-staffs"> <div class="m-staffs">
<div class="item" :key="'staff' + index" v-for="(item, index) in formData.organizationPersonnel"> <div style="width:500px;" :key="'staff' + index" v-for="(item, index) in formData.organizationPersonnel">
<el-row :gutter="10" style="margin-bottom: 10px;">
<el-col :span="8">
<el-autocomplete <el-autocomplete
class="item_width_1" class="item_width_1"
v-model="item.personName" v-model="item.personName"
@ -47,20 +50,21 @@
@select="vItem => handleSelectVolunteer(index, vItem)" @select="vItem => handleSelectVolunteer(index, vItem)"
:disabled="item.icResiUserId != ''" :disabled="item.icResiUserId != ''"
></el-autocomplete> ></el-autocomplete>
</el-col>
<el-col :span="8">
<el-input <el-input
style="margin-left: 10px"
class="item_width_1" class="item_width_1"
show-word-limit show-word-limit
placeholder="联系电话" placeholder="联系电话"
:disabled="item.icResiUserId != ''" :disabled="item.icResiUserId != ''"
v-model="item.personPhone" v-model="item.personPhone"
/> />
</el-col>
<el-button style="margin-left: 10px" size="small" @click="handleDelStaff(index)">删除</el-button> <el-col :span="8"><el-button type="danger" size="small" @click="handleDelStaff(index)">删除</el-button></el-col>
</el-row>
</div> </div>
<el-button size="small" @click="handleAddStaff" type="primary" >添加</el-button>
<div class="item-add"><el-button size="small" @click="handleAddStaff">添加</el-button></div>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -81,19 +85,11 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="创建时间" prop="organizationCreatedTime"> <el-form-item label="创建时间" prop="organizationCreatedTime">
<el-date-picker <el-date-picker v-model="formData.organizationCreatedTime" type="date" style="width: 150px;" value-format="yyyy-MM-dd"></el-date-picker>
v-model="formData.organizationCreatedTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24">
<el-col :span="6"> <el-form-item label="详细地址" prop="address">
<el-form-item label="场所地址" prop="address" style="display: block">
<el-select <el-select
v-model="formData.address" v-model="formData.address"
filterable filterable
@ -122,7 +118,7 @@
show-word-limit show-word-limit
:rows="3" :rows="3"
v-model="formData.remark" v-model="formData.remark"
class="u-item-width-normal" class="textarea"
size="small" size="small"
clearable clearable
placeholder="请输入" placeholder="请输入"
@ -292,7 +288,7 @@ export default {
querySearchVolunteer(queryString, cb) { querySearchVolunteer(queryString, cb) {
const { volunteerList } = this; const { volunteerList } = this;
var results = queryString var results = queryString
? volunteerList.filter((item) => { ? volunteerList.filter(item => {
return item.value.indexOf(queryString) !== -1; return item.value.indexOf(queryString) !== -1;
}) })
: volunteerList; : volunteerList;
@ -303,7 +299,7 @@ export default {
this.formData.organizationPersonnel[index] = { this.formData.organizationPersonnel[index] = {
personName: vItem.name, personName: vItem.name,
personPhone: vItem.mobile, personPhone: vItem.mobile,
icResiUserId: vItem.icResiUserId, icResiUserId: vItem.icResiUserId
}; };
}, },
@ -426,8 +422,8 @@ export default {
url = '/actual/base/iccommunityselforganization/editcommunityselforganization'; url = '/actual/base/iccommunityselforganization/editcommunityselforganization';
// this.dataForm.orgId = this.orgId; // this.dataForm.orgId = this.orgId;
} }
console.log("this.",this.formData)
params = { ...this.formData }; let params = { ...this.formData };
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.$message.success('添加成功'); this.$message.success('添加成功');
@ -549,4 +545,5 @@ export default {
@import '@/assets/scss/modules/management/form-main.scss'; @import '@/assets/scss/modules/management/form-main.scss';
@import '@/assets/scss/modules/management/form.scss'; @import '@/assets/scss/modules/management/form.scss';
@import '@/assets/scss/modules/visual/a_customize.scss'; @import '@/assets/scss/modules/visual/a_customize.scss';
.textarea{width: 500px;}
</style> </style>

41
src/views/modules/shequzhili/tuceng/yingji/zizuzhi/index.vue

@ -68,26 +68,20 @@
<el-table-column prop="address" align="center" :show-overflow-tooltip="true" label="地址"></el-table-column> <el-table-column prop="address" align="center" :show-overflow-tooltip="true" label="地址"></el-table-column>
<el-table-column prop="remark" align="center" :show-overflow-tooltip="true" label="备注"></el-table-column> <el-table-column prop="remark" align="center" :show-overflow-tooltip="true" label="备注"></el-table-column>
<el-table-column prop="organizationCreatedTime" align="center" :show-overflow-tooltip="true" label="创建时间"></el-table-column> <el-table-column prop="organizationCreatedTime" align="center" :show-overflow-tooltip="true" label="创建时间"></el-table-column>
<el-table-column fixed="right" label="操作" align="center" width="200"> <el-table-column fixed="right" label="操作" align="center" width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleAdd(scope.row, 'view')" type="text" size="small">查看</el-button> <el-button @click="handleAdd(scope.row, 'view')" size="small" type="text">查看</el-button>
<el-button type="text" class="div-table-button--detail" size="small" @click="handleScore(scope.row)">积分记录</el-button> <el-button size="small" @click="handleScore(scope.row)" type="text">积分记录</el-button>
<el-button @click="handleSync(scope.row)" v-if="scope.row.syncType === 'not_sync'" size="small" type="text">同步</el-button>
<el-button @click="handleNoSync(scope.row)" v-if="scope.row.syncType === 'sync'" size="small" type="text">取消同步</el-button>
<el-button @click="handleSync(scope.row)" v-if="scope.row.syncType === 'not_sync'" type="text" size="small" class="div-table-button--edit">
同步
</el-button>
<el-button @click="handleNoSync(scope.row)" v-if="scope.row.syncType === 'sync'" type="text" size="small" class="div-table-button--edit">
取消同步
</el-button>
<el-button <el-button
v-if="scope.row.latitude && agencyId == scope.row.agencyId"
style="margin-right: 10px" style="margin-right: 10px"
@click="handleAdd(scope.row, 'edit')" @click="handleAdd(scope.row, 'edit')"
size="small" size="small"
type="text" type="text"
v-if="scope.row.latitude && agencyId == scope.row.agencyId"
> >
编辑 修改
</el-button> </el-button>
<el-button <el-button
v-if="!scope.row.latitude && agencyId == scope.row.agencyId" v-if="!scope.row.latitude && agencyId == scope.row.agencyId"
@ -130,16 +124,8 @@
/> />
</div> </div>
<!-- 积分记录 --> <!-- 积分记录 -->
<el-dialog :visible.sync="scoreDiaShow"
:close-on-click-modal="false" <score-record :detailId="orgId" v-if="scoreDiaShow" @diaClose="diaClose" :scoreDiaShow="scoreDiaShow" :serviceType="'community_org'"></score-record>
:close-on-press-escape="false"
:title="scoreDiaTitle"
width="70%"
top="5vh"
@closed="diaClose">
<score-record ref="ref_score"
:serviceType="'community_org'"></score-record>
</el-dialog>
</div> </div>
</template> </template>
@ -149,7 +135,7 @@ import nextTick from 'dai-js/tools/nextTick';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import addForm from './addForm.vue'; import addForm from './addForm.vue';
import axios from 'axios'; import axios from 'axios';
import scoreRecord from "./scoreRecord.vue"; import scoreRecord from './scoreRecord.vue';
export default { export default {
data() { data() {
return { return {
@ -176,7 +162,8 @@ export default {
detailId: '', detailId: '',
detailData: {}, detailData: {},
multipleSelection: [], multipleSelection: [],
rowObj: {} rowObj: {},
orgId: ''
}; };
}, },
components: { addForm, scoreRecord }, components: { addForm, scoreRecord },
@ -198,10 +185,8 @@ export default {
methods: { methods: {
// //
handleScore(row) { handleScore(row) {
this.orgId = row.orgId;
this.scoreDiaShow = true; this.scoreDiaShow = true;
this.$nextTick(() => {
this.$refs.ref_score.initForm(row.orgId);
});
}, },
diaClose() { diaClose() {

250
src/views/modules/shequzhili/tuceng/yingji/zizuzhi/scoreRecord.vue

@ -1,14 +1,11 @@
<template> <template>
<div class="g-main"> <el-dialog title="积分记录" :visible.sync="scoreDiaShow" width="1370px" :before-close="handleCancle">
<div>
<el-form :inline="true" <div class="dialog-h-content scroll-h">
:model="formData" <el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'">
ref="ref_searchform" <el-form-item label="查询时间" prop="startTime">
:label-width="'100px'"> <el-date-picker
v-model="timeRange"
<el-form-item label="查询时间"
prop="startTime">
<el-date-picker v-model="timeRange"
type="daterange" type="daterange"
:clearable="false" :clearable="false"
:picker-options="pickerOptions" :picker-options="pickerOptions"
@ -17,98 +14,58 @@
end-placeholder="结束日期" end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom" prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@change="handleTimeChange"> @change="handleTimeChange"
</el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<div> <div>
<el-form-item label="总计:" <el-form-item label="总计:" prop="startTime">
prop="startTime">
<span>{{ totalPoint }}</span> <span>{{ totalPoint }}</span>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
<el-table class="table" <el-table class="m-table-item" :data="tableData" v-loading="tableLoading" style="width: 100%">
:data="tableData" <el-table-column label="序号" header-align="center" align="center" type="index" width="50"></el-table-column>
border <el-table-column prop="categoryName" header-align="center" align="center" label="需求类型" width="180"></el-table-column>
:height="tableHeight" <el-table-column prop="demandUserName" header-align="center" align="center" label="需求人" width="120"></el-table-column>
v-loading="tableLoading" <el-table-column prop="content" header-align="center" align="center" label="需求内容" :show-overflow-tooltip="true" min-width="230"></el-table-column>
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}" <el-table-column prop="pointTime" header-align="center" align="center" label="时间" width="150"></el-table-column>
style="width: 100%"> <el-table-column prop="score" header-align="center" align="center" label="评价" width="120"></el-table-column>
<el-table-column prop="point" header-align="center" align="center" label="积分" width="100"></el-table-column>
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="categoryName"
header-align="center"
align="center"
label="需求类型"
width="180">
</el-table-column>
<el-table-column prop="demandUserName"
header-align="center"
align="center"
label="需求人"
width="120">
</el-table-column>
<el-table-column prop="content"
header-align="center"
align="center"
label="需求内容"
:show-overflow-tooltip="true"
min-width="230">
</el-table-column>
<el-table-column prop="pointTime"
header-align="center"
align="center"
label="时间"
width="150">
</el-table-column>
<el-table-column prop="score"
header-align="center"
align="center"
label="评价"
width="120">
</el-table-column>
<el-table-column prop="point"
header-align="center"
align="center"
label="积分"
width="100">
</el-table-column>
</el-table> </el-table>
<div> <div>
<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="[10, 20, 50]" :page-sizes="[10, 20, 50]"
:page-size="pageSize" :page-size="pageSize"
layout="sizes, prev, pager, next, total" layout="sizes, prev, pager, next, total"
:total="total"> :total="total"
</el-pagination> ></el-pagination>
</div> </div>
</div> </div>
<!-- <div class="div_btn" v-if="pageType != 'view'">
<el-button size="small" @click="handleCancle"> </el-button>
<el-button size="small" @click="resetData" v-if="pageType != 'view'">重置</el-button>
<el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button>
</div> -->
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleCancle"> </el-button>
<!-- <el-button type="primary" @click="handleComfirm"> </el-button> -->
</span>
</el-dialog>
</template> </template>
<script> <script>
import util from '@js/util.js'; import util from '@js/util.js';
import { requestPost } from "@/js/dai/request"; import { requestPost } from '@/js/dai/request';
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex';
import { Loading } from 'element-ui' // Loading import { Loading } from 'element-ui'; // Loading
let loading // let loading; //
export default { export default {
data() { data() {
return { return {
@ -120,84 +77,91 @@ export default {
tableLoading: false, tableLoading: false,
serviceId: '', serviceId: '',
pickerOptions: { // pickerOptions: {
//
disabledDate(time) { disabledDate(time) {
return time.getTime() > (Date.now()) return time.getTime() > Date.now();
} }
}, },
timeRange: [], timeRange: [],
unitId: '', unitId: '',
formData: { formData: {
startTime: '', startTime: '',
endTime: '' endTime: ''
}, },
btnDisable: false,
tableData: [], tableData: []
};
}
}, },
components: { components: {},
props: {
scoreDiaShow: {
type: Boolean,
default: ''
}, },
async created () {
detailId: {
type: String,
default: ''
}, },
serviceType: {
type: String,
default: ''
}
},
async created() {},
async mounted() { async mounted() {
this.initForm();
}, },
methods: { methods: {
async initForm (serviceId) { handleCancle() {
this.initDate() this.$emit('diaClose');
},
this.serviceId = serviceId async initForm() {
this.initDate();
// //
await this.loadTable() await this.loadTable();
}, },
handleSearch() { handleSearch() {
this.loadTable() this.loadTable();
}, },
async loadTable() { async loadTable() {
this.tableLoading = true this.tableLoading = true;
const url = '/governance/userdemand/recordList';
const url = "/governance/userdemand/recordList"
// const url = "http://yapi.elinkservice.cn/mock/245/governance/userdemand/recordList" // const url = "http://yapi.elinkservice.cn/mock/245/governance/userdemand/recordList"
let params = { let params = {
serviceType: this.serviceType, serviceType: this.serviceType,
serviceId: this.serviceId, serviceId: this.detailId,
pageSize: this.pageSize, pageSize: this.pageSize,
pageNo: this.pageNo, pageNo: this.pageNo,
...this.formData ...this.formData
} };
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.totalPoint = data.totalPoint this.totalPoint = data.totalPoint;
this.total = data.page.total this.total = data.page.total;
this.tableData = data.page.list this.tableData = data.page.list;
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
this.tableLoading = false this.tableLoading = false;
}, },
// //
initDate() { initDate() {
let today = new Date((new Date).getTime()) let today = new Date(new Date().getTime());
let year = today.getFullYear() let year = today.getFullYear();
let month = today.getMonth() + 1 // let month = today.getMonth() + 1; //
let day = today.getDate() // let day = today.getDate(); //
let days = new Date(year, month, 0); let days = new Date(year, month, 0);
days = days.getDate(); // days = days.getDate(); //
@ -228,42 +192,40 @@ 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.startTime = t2 + ' 00:00:00';
this.formData.endTime = t1 + ' 23:59:59' this.formData.endTime = t1 + ' 23:59:59';
this.timeRange = [t2, t1] this.timeRange = [t2, t1];
}, },
handleTimeChange(time) { handleTimeChange(time) {
if (time) { if (time) {
const startTimeArray = util.dateFormatter(time[0], 'date').split('-') const startTimeArray = util.dateFormatter(time[0], 'date').split('-');
const endTimeArray = util.dateFormatter(time[1], 'date').split('-') const endTimeArray = util.dateFormatter(time[1], 'date').split('-');
this.formData.startTime = startTimeArray[0] + '-' + startTimeArray[1] + '-' + startTimeArray[2] + ' 00:00:00' this.formData.startTime = startTimeArray[0] + '-' + startTimeArray[1] + '-' + startTimeArray[2] + ' 00:00:00';
this.formData.endTime = endTimeArray[0] + '-' + endTimeArray[1] + '-' + endTimeArray[2] + ' 23:59:59' this.formData.endTime = endTimeArray[0] + '-' + endTimeArray[1] + '-' + endTimeArray[2] + ' 23:59:59';
// this.startTimeShow = startTimeArray[0] + '' + startTimeArray[1] + '' + startTimeArray[2] + '' // this.startTimeShow = startTimeArray[0] + '' + startTimeArray[1] + '' + startTimeArray[2] + ''
// this.endTimeShow = endTimeArray[0] + '' + endTimeArray[1] + '' + endTimeArray[2] + '' // this.endTimeShow = endTimeArray[0] + '' + endTimeArray[1] + '' + endTimeArray[2] + ''
} else { } else {
this.formData.startTime = '' this.formData.startTime = '';
this.formData.endTime = '' this.formData.endTime = '';
// this.startTimeShow = '' // this.startTimeShow = ''
// this.endTimeShow = '' // this.endTimeShow = ''
} }
this.loadTable() this.loadTable();
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val this.pageSize = val;
this.pageNo = 1 this.pageNo = 1;
this.loadTable() this.loadTable();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.pageNo = val this.pageNo = val;
this.loadTable() this.loadTable();
}, },
// //
@ -272,40 +234,30 @@ export default {
lock: true, // lock: true, //
text: '正在加载……', // text: '正在加载……', //
background: 'rgba(0,0,0,.7)' // background: 'rgba(0,0,0,.7)' //
}) });
}, },
// //
endLoading() { endLoading() {
// clearTimeout(timer); // clearTimeout(timer);
if (loading) { if (loading) {
loading.close() loading.close();
} }
} }
}, },
computed: { computed: {
tableHeight() { tableHeight() {
return this.clientHeight - 460;
return (this.clientHeight - 460)
}, },
rowHeight() { rowHeight() {
return (this.clientHeight - 200) + 'px' return this.clientHeight - 200 + 'px';
}, },
...mapGetters(['clientHeight']) ...mapGetters(['clientHeight'])
}, },
watch: { watch: {}
};
},
props: {
serviceType: {
type: String,
default: ''
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss"; @import '@/assets/scss/buttonstyle.scss';
.g-main { .g-main {
background: #ffffff; background: #ffffff;

Loading…
Cancel
Save