|
|
@ -3,93 +3,27 @@ |
|
|
|
<Breadcrumb :list="breadcrumbList" /> |
|
|
|
<div class="screen"> |
|
|
|
<el-form :model="queryParams" inline> |
|
|
|
<el-date-picker |
|
|
|
v-if="!hideSearch" |
|
|
|
size="small" |
|
|
|
popper-class="date-current-weiyi" |
|
|
|
:append-to-body="false" |
|
|
|
v-model="queryParams.month" |
|
|
|
type="month" |
|
|
|
value-format="yyyy-MM" |
|
|
|
placeholder="按月度" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
|
|
|
|
<el-select |
|
|
|
v-if="!hideSearch" |
|
|
|
popper-class="selectPopClass" |
|
|
|
v-model="queryParams.agencyId" |
|
|
|
size="small" |
|
|
|
placeholder="按组织" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in orgOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
<el-date-picker v-if="!hideSearch" size="small" popper-class="date-current-weiyi" :append-to-body="false" v-model="queryParams.month" type="month" value-format="yyyy-MM" placeholder="按月度"> </el-date-picker> |
|
|
|
|
|
|
|
<el-select v-if="!hideSearch" popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织"> |
|
|
|
<el-option v-for="item in orgOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select |
|
|
|
class="searchSelect" |
|
|
|
popper-class="selectPopClass" |
|
|
|
clearable |
|
|
|
collapse-tags |
|
|
|
multiple |
|
|
|
v-model="queryParams.satisfactionSource" |
|
|
|
size="small" |
|
|
|
placeholder="按不满意事项来源" |
|
|
|
@change="getSatisfactionCategoryOptions" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in satisfactionSourceOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
<el-select class="searchSelect" popper-class="selectPopClass" clearable collapse-tags multiple v-model="queryParams.satisfactionSource" size="small" placeholder="按不满意事项来源" @change="getSatisfactionCategoryOptions"> |
|
|
|
<el-option v-for="item in satisfactionSourceOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<el-select |
|
|
|
popper-class="selectPopClass" |
|
|
|
clearable |
|
|
|
v-model="queryParams.satisfactionCategory" |
|
|
|
size="small" |
|
|
|
placeholder="按不满意事项类型" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in satisfactionCategoryOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
<el-select popper-class="selectPopClass" clearable v-model="queryParams.satisfactionCategory" size="small" placeholder="按不满意事项类型"> |
|
|
|
<el-option v-for="item in satisfactionCategoryOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> |
|
|
|
</el-select> |
|
|
|
<el-input |
|
|
|
v-model.trim="queryParams.name" |
|
|
|
size="small" |
|
|
|
placeholder="按人员姓名" |
|
|
|
></el-input> |
|
|
|
<el-input |
|
|
|
v-model.trim="queryParams.mobile" |
|
|
|
size="small" |
|
|
|
placeholder="按人员电话" |
|
|
|
></el-input> |
|
|
|
<el-button size="small" class="btn" type="primary" @click="search" |
|
|
|
>查询</el-button |
|
|
|
> |
|
|
|
<el-input v-model.trim="queryParams.name" size="small" placeholder="按人员姓名"></el-input> |
|
|
|
<el-input v-model.trim="queryParams.mobile" size="small" placeholder="按人员电话"></el-input> |
|
|
|
<el-button size="small" class="btn" type="primary" @click="search">查询</el-button> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="table"> |
|
|
|
<el-table |
|
|
|
:data="list" |
|
|
|
v-loading="loading" |
|
|
|
element-loading-text="加载中..." |
|
|
|
element-loading-spinner="el-icon-loading" |
|
|
|
element-loading-background="rgba(0,0,0,0.5)" |
|
|
|
> |
|
|
|
<el-table :data="list" v-loading="loading" element-loading-text="加载中..." element-loading-spinner="el-icon-loading" element-loading-background="rgba(0,0,0,0.5)"> |
|
|
|
<el-table-column label="序号" type="index" width="80" /> |
|
|
|
|
|
|
|
<el-table-column prop="month" label="月度" width="114" /> |
|
|
@ -101,18 +35,13 @@ |
|
|
|
<span |
|
|
|
:style="{ |
|
|
|
color: satisfactionSourceFormat(row.satisfactionSource).color, |
|
|
|
}" |
|
|
|
> |
|
|
|
}"> |
|
|
|
{{ satisfactionSourceFormat(row.satisfactionSource).label }} |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="satisfactionCategoryName" |
|
|
|
width="150" |
|
|
|
label="事项类型" |
|
|
|
/> |
|
|
|
<el-table-column prop="satisfactionCategoryName" width="150" label="事项类型" /> |
|
|
|
|
|
|
|
<el-table-column prop="reason" show-overflow-tooltip label="事项描述" /> |
|
|
|
|
|
|
@ -148,21 +77,13 @@ |
|
|
|
|
|
|
|
<el-table-column label="操作" width="90" align="center"> |
|
|
|
<template slot-scope="data"> |
|
|
|
<el-button type="text" @click="handleView(data.row)" |
|
|
|
>查看</el-button |
|
|
|
> |
|
|
|
<el-button type="text" @click="handleView(data.row)">查看</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
|
|
|
|
<Pagination |
|
|
|
v-show="total > 0" |
|
|
|
:total="total" |
|
|
|
:page.sync="queryParams.pageNo" |
|
|
|
:limit.sync="queryParams.pageSize" |
|
|
|
@pagination="getList" |
|
|
|
/> |
|
|
|
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
|
|
|
<DissatisfiedDetail ref="detail" :id="id" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -179,7 +100,7 @@ export default { |
|
|
|
return { |
|
|
|
hideSearch: false, |
|
|
|
queryParams: { |
|
|
|
month: this.$moment().format("YYYY-MM"), |
|
|
|
month: "", |
|
|
|
agencyId: "", |
|
|
|
satisfactionSource: [], |
|
|
|
satisfactionCategory: "", |
|
|
@ -259,26 +180,18 @@ export default { |
|
|
|
return; |
|
|
|
} |
|
|
|
const satisfactionSource = this.queryParams.satisfactionSource.toString(); |
|
|
|
this.$http |
|
|
|
.get( |
|
|
|
"/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource=" + |
|
|
|
satisfactionSource |
|
|
|
) |
|
|
|
.then(({ data: { data } }) => { |
|
|
|
this.satisfactionCategoryOptions = data.map((item) => { |
|
|
|
return { |
|
|
|
label: item.categoryName, |
|
|
|
value: item.categoryCode, |
|
|
|
}; |
|
|
|
}); |
|
|
|
this.queryParams.satisfactionCategory = |
|
|
|
this.$route.params.type == 0 ? "" : this.$route.params.type; |
|
|
|
this.$http.get("/governance/satisfactionDetailList/getUnsatisfiedCategory?satisfactionSource=" + satisfactionSource).then(({ data: { data } }) => { |
|
|
|
this.satisfactionCategoryOptions = data.map((item) => { |
|
|
|
return { |
|
|
|
label: item.categoryName, |
|
|
|
value: item.categoryCode, |
|
|
|
}; |
|
|
|
}); |
|
|
|
this.queryParams.satisfactionCategory = this.$route.params.type == 0 ? "" : this.$route.params.type; |
|
|
|
}); |
|
|
|
}, |
|
|
|
satisfactionSourceFormat(val) { |
|
|
|
let satisfactionSource = this.satisfactionSourceOptions.filter( |
|
|
|
(item) => item.value === val |
|
|
|
)[0]; |
|
|
|
let satisfactionSource = this.satisfactionSourceOptions.filter((item) => item.value === val)[0]; |
|
|
|
return satisfactionSource ? satisfactionSource : ""; |
|
|
|
}, |
|
|
|
search() { |
|
|
@ -287,39 +200,31 @@ export default { |
|
|
|
}, |
|
|
|
getList() { |
|
|
|
this.loading = true; |
|
|
|
this.$http |
|
|
|
.get( |
|
|
|
"/governance/satisfactionDetailList/getUnsatisfiedMattersList?" + |
|
|
|
this.$paramsFormat(this.queryParams) |
|
|
|
) |
|
|
|
.then(({ data: { data } }) => { |
|
|
|
this.total = data.total; |
|
|
|
this.list = data.list; |
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
this.$http.get("/governance/satisfactionDetailList/getUnsatisfiedMattersList?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => { |
|
|
|
this.total = data.total; |
|
|
|
this.list = data.list; |
|
|
|
this.loading = false; |
|
|
|
}); |
|
|
|
}, |
|
|
|
getOrg() { |
|
|
|
let params = { |
|
|
|
orgId: this.$store.state.chooseArea.chooseName.orgId, |
|
|
|
level: this.$store.state.chooseArea.chooseName.level, |
|
|
|
}; |
|
|
|
this.$http |
|
|
|
.post(`/gov/org/agency/maporg`, params) |
|
|
|
.then(async ({ data: { data } }) => { |
|
|
|
this.queryParams.agencyId = |
|
|
|
this.$store.state.chooseArea.chooseName.orgId; |
|
|
|
let parent = { value: data.id, label: data.name }; |
|
|
|
this.orgOptions = [ |
|
|
|
parent, |
|
|
|
...data.children.map((item) => { |
|
|
|
return { |
|
|
|
value: item.id, |
|
|
|
label: item.name, |
|
|
|
}; |
|
|
|
}), |
|
|
|
]; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
this.$http.post(`/gov/org/agency/maporg`, params).then(async ({ data: { data } }) => { |
|
|
|
this.queryParams.agencyId = this.$store.state.chooseArea.chooseName.orgId; |
|
|
|
let parent = { value: data.id, label: data.name }; |
|
|
|
this.orgOptions = [ |
|
|
|
parent, |
|
|
|
...data.children.map((item) => { |
|
|
|
return { |
|
|
|
value: item.id, |
|
|
|
label: item.name, |
|
|
|
}; |
|
|
|
}), |
|
|
|
]; |
|
|
|
this.getList(); |
|
|
|
}); |
|
|
|
}, |
|
|
|
timeChange(type) { |
|
|
|
let startTime = "", |
|
|
@ -328,35 +233,20 @@ export default { |
|
|
|
startTime = this.$moment().startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (type == 2) { |
|
|
|
startTime = this.$moment() |
|
|
|
.subtract(1, "months") |
|
|
|
.startOf("month") |
|
|
|
.format("YYYY-MM-DD"); |
|
|
|
startTime = this.$moment().subtract(1, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (type == 3) { |
|
|
|
startTime = this.$moment() |
|
|
|
.subtract(2, "months") |
|
|
|
.startOf("month") |
|
|
|
.format("YYYY-MM-DD"); |
|
|
|
startTime = this.$moment().subtract(2, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (type == 4) { |
|
|
|
startTime = this.$moment() |
|
|
|
.subtract(5, "months") |
|
|
|
.startOf("month") |
|
|
|
.format("YYYY-MM-DD"); |
|
|
|
startTime = this.$moment().subtract(5, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (type == 5) { |
|
|
|
startTime = this.$moment() |
|
|
|
.subtract(11, "months") |
|
|
|
.startOf("month") |
|
|
|
.format("YYYY-MM-DD"); |
|
|
|
startTime = this.$moment().subtract(11, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
|
|
|
|
if (type == 2) { |
|
|
|
endTime = this.$moment() |
|
|
|
.subtract(1, "months") |
|
|
|
.endOf("month") |
|
|
|
.format("YYYY-MM-DD"); |
|
|
|
endTime = this.$moment().subtract(1, "months").endOf("month").format("YYYY-MM-DD"); |
|
|
|
} else { |
|
|
|
endTime = this.$moment().endOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|