10 changed files with 226 additions and 32 deletions
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 8.5 KiB |
@ -0,0 +1,207 @@ |
|||
<template> |
|||
<div class="g-main"> |
|||
<div> |
|||
<div class="m-table"> |
|||
<div class="div_btn_left"> |
|||
<el-button size="small" type="primary" @click="submit" |
|||
>保存设置</el-button |
|||
> |
|||
<el-button style="margin-left: 10px" size="small" @click="resetSearch" |
|||
>重置</el-button |
|||
> |
|||
</div> |
|||
<el-table |
|||
:data="tableData" |
|||
border |
|||
v-loading="tableLoading" |
|||
class="m-table-item" |
|||
style="width: 100%" |
|||
:height="maxTableHeight" |
|||
> |
|||
<el-table-column |
|||
prop="residentCategoryName" |
|||
align="center" |
|||
label="居民分类" |
|||
:show-overflow-tooltip="true" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
align="center" |
|||
label="更新周期" |
|||
:show-overflow-tooltip="true" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-select |
|||
v-model="scope.row.updatePeriod" |
|||
clearable |
|||
placeholder="请选择" |
|||
> |
|||
<el-option |
|||
v-for="item in updatePeriodOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
></el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> |
|||
<!-- --> |
|||
<el-table-column |
|||
prop="staffId" |
|||
align="center" |
|||
label="更新负责人" |
|||
:show-overflow-tooltip="true" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-select |
|||
v-model="scope.row.userId" |
|||
placeholder="请选择" |
|||
clearable |
|||
> |
|||
<el-option |
|||
v-for="item in dicts.stafflist" |
|||
:key="item.value" |
|||
:label="item.name" |
|||
:value="item.staffId" |
|||
></el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { requestPost } from "@/js/dai/request"; |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
import { mapGetters } from "vuex"; |
|||
|
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return { |
|||
tableLoading: false, |
|||
user: {}, |
|||
tableData: [], |
|||
updatePeriodOptions: [ |
|||
{ |
|||
label: "每周", |
|||
value: "week", |
|||
}, |
|||
{ |
|||
label: "每自然月", |
|||
value: "month", |
|||
}, |
|||
], |
|||
dicts: { |
|||
stafflist: [], |
|||
}, //字典对象 |
|||
}; |
|||
}, |
|||
computed: { |
|||
maxTableHeight() { |
|||
const h = this.clientHeight - 250 + this.iframeHeight; |
|||
const _h = this.clientHeight - 250; |
|||
return this.$store.state.inIframe ? h : _h; |
|||
}, |
|||
...mapGetters(["clientHeight", "iframeHeight"]), |
|||
}, |
|||
watch: {}, |
|||
created() {}, |
|||
mounted() { |
|||
this.user = this.$store.state.user; |
|||
this.agencyId = this.user.agencyId; |
|||
this.getStafflist(); |
|||
this.getTableData(); |
|||
}, |
|||
methods: { |
|||
// --------------------------------------字典------------------------------------------ |
|||
getStafflist() { |
|||
let parms = { |
|||
orgId: this.user.agencyId, |
|||
orgType: "agency", |
|||
pageNo: 1, |
|||
pageSize: 100, |
|||
}; |
|||
this.$http.post("data/aggregator/org/stafflist", parms).then((resp) => { |
|||
this.dicts.stafflist = resp.data.data.staffList; |
|||
console.log("stafflist", resp.data); |
|||
}); |
|||
}, |
|||
// ------------------------------------事件------------------------------------------ |
|||
|
|||
// 获取列表 |
|||
async getTableData() { |
|||
this.tableLoading = true; |
|||
const url = "/actual/base/residentCategoryUpdateInfo/upadteSettingList"; |
|||
|
|||
const { data, code, msg } = await requestPost(url, { |
|||
orgId: this.user.agencyId, |
|||
orgType: this.user.level, |
|||
pageNo: 1, |
|||
pageSize: 1000, |
|||
}); |
|||
this.tableLoading = false; |
|||
if (code === 0) { |
|||
this.tableData = data; |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
async submit() { |
|||
let url = "/actual/base/residentCategoryUpdateInfo/updateList"; |
|||
let params = this.tableData.map((item) => { |
|||
return { |
|||
id: item.id, |
|||
updatePeriod: item.updatePeriod, |
|||
userId: item.userId, |
|||
}; |
|||
}); |
|||
const { data, code, msg } = await requestPost(url, params); |
|||
if (code === 0) { |
|||
this.$message.success("操作成功"); |
|||
this.getTableData(); |
|||
} else { |
|||
this.$message.error(msg); |
|||
} |
|||
}, |
|||
// 重置 |
|||
resetSearch() { |
|||
this.$confirm("重置之后无法恢复,确认重置?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
}) |
|||
.then(() => { |
|||
this.tableData = this.tableData.map((item) => { |
|||
return { |
|||
...item, |
|||
updatePeriod: '', |
|||
userId: '', |
|||
}; |
|||
}); |
|||
this.submit(); |
|||
this.getTableData(); |
|||
}) |
|||
.catch((err) => { |
|||
console.error(err); |
|||
// this.$message.error("删除失败"); |
|||
}); |
|||
}, |
|||
}, |
|||
|
|||
props: {}, |
|||
}; |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/buttonstyle.scss"; |
|||
@import "@/assets/scss/modules/management/list-main.scss"; |
|||
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
|||
.div_btn_left > * { |
|||
margin-right: 10px; |
|||
} |
|||
</style> |
|||
|
|||
|
Loading…
Reference in new issue