5 changed files with 350 additions and 30 deletions
@ -0,0 +1,221 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div class="dialog-h-content scroll-h"> |
||||
|
<el-form |
||||
|
ref="ref_form" |
||||
|
:inline="true" |
||||
|
:model="fmData" |
||||
|
:rules="dataRule" |
||||
|
class="form" |
||||
|
> |
||||
|
<el-form-item |
||||
|
label="文章名称" |
||||
|
prop="title" |
||||
|
label-width="150px" |
||||
|
style="display: block" |
||||
|
> |
||||
|
<div style="width: 610px"> |
||||
|
{{ fmData.title || "--" }} |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item |
||||
|
label="下线网格 " |
||||
|
prop="gridIdList" |
||||
|
label-width="150px" |
||||
|
style="display: block" |
||||
|
> |
||||
|
<el-cascader |
||||
|
v-model="fmData.gridIdList" |
||||
|
placeholder="请选择" |
||||
|
:options="gridOptions" |
||||
|
:props="{ |
||||
|
multiple: true, |
||||
|
value: 'value', |
||||
|
label: 'label', |
||||
|
children: 'children', |
||||
|
checkStrictly: false, |
||||
|
emitPath: false, |
||||
|
}" |
||||
|
:show-all-levels="false" |
||||
|
size="small" |
||||
|
clearable |
||||
|
class="item-select" |
||||
|
style="width: 500px" |
||||
|
@change="handleChangeCascader" |
||||
|
> |
||||
|
</el-cascader> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="div_btn resi-btns"> |
||||
|
<el-button size="small" @click="handleCancle">取 消</el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
size="small" |
||||
|
:disabled="btnDisable" |
||||
|
@click="handleComfirm" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
btnDisable: false, |
||||
|
|
||||
|
fmData: { |
||||
|
articleId: "", |
||||
|
title: "", |
||||
|
gridIdList: [], |
||||
|
}, |
||||
|
|
||||
|
gridOptions: [], |
||||
|
}; |
||||
|
}, |
||||
|
components: {}, |
||||
|
computed: { |
||||
|
dataRule() { |
||||
|
return { |
||||
|
gridIdList: [ |
||||
|
{ required: true, message: "下线网格不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: { |
||||
|
handleChangeCascader(e) { |
||||
|
console.log(e); |
||||
|
}, |
||||
|
async initForm({ articleId, title }) { |
||||
|
this.fmData.articleId = articleId; |
||||
|
this.fmData.title = title; |
||||
|
this.fmData.gridIdList = []; |
||||
|
this.gridOptions = []; |
||||
|
this.getGridOpitons(articleId); |
||||
|
}, |
||||
|
|
||||
|
async getGridOpitons(articleId) { |
||||
|
const url = "/gov/voice/article/publishgridlist"; |
||||
|
const params = { |
||||
|
articleId, |
||||
|
}; |
||||
|
|
||||
|
const { data, code, msg } = await requestPost(url, params); |
||||
|
if (code === 0) { |
||||
|
function poll(list) { |
||||
|
return list.map((item) => { |
||||
|
return { |
||||
|
label: item.agencyName, |
||||
|
value: item.agencyId, |
||||
|
type: "agency", |
||||
|
children: [ |
||||
|
...poll(item.subAgencyGridList), |
||||
|
...item.gridList.map((grid) => ({ |
||||
|
label: grid.gridName, |
||||
|
value: grid.gridId, |
||||
|
type: "grid", |
||||
|
})), |
||||
|
], |
||||
|
}; |
||||
|
}); |
||||
|
} |
||||
|
let gridOptions = poll([data.agencyGridList]); |
||||
|
console.log(gridOptions); |
||||
|
this.gridOptions = gridOptions; |
||||
|
} else { |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async handleComfirm() { |
||||
|
this.btnDisable = true; |
||||
|
setTimeout(() => { |
||||
|
this.btnDisable = false; |
||||
|
}, 5000); |
||||
|
this.$refs["ref_form"].validate((valid, messageObj) => { |
||||
|
if (!valid) { |
||||
|
app.util.validateRule(messageObj); |
||||
|
this.btnDisable = false; |
||||
|
} else { |
||||
|
this.submit(); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
async submit() { |
||||
|
let url = "/gov/voice/article/offlinearticle"; |
||||
|
|
||||
|
let params = { ...this.fmData }; |
||||
|
|
||||
|
const { data, code, msg } = await requestPost(url, params); |
||||
|
|
||||
|
if (code === 0) { |
||||
|
this.$message({ |
||||
|
type: "success", |
||||
|
message: "操作成功", |
||||
|
}); |
||||
|
this.$emit("afterOffline"); |
||||
|
this.btnDisable = false; |
||||
|
} else { |
||||
|
this.btnDisable = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
handleCancle() { |
||||
|
this.$emit("close"); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.item_width_1 { |
||||
|
width: 500px; |
||||
|
} |
||||
|
.item_width_2 { |
||||
|
width: 400px; |
||||
|
} |
||||
|
.item_width_3 { |
||||
|
margin-left: 10px; |
||||
|
width: 200px; |
||||
|
} |
||||
|
.item_width_4 { |
||||
|
width: 200px; |
||||
|
} |
||||
|
|
||||
|
.div_map { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.div_btn { |
||||
|
// display: flex; |
||||
|
// justify-content: flex-end; |
||||
|
} |
||||
|
.el-tabs { |
||||
|
margin: 0 20px; |
||||
|
} |
||||
|
.el-upload__tip { |
||||
|
color: rgb(155, 155, 155); |
||||
|
margin: 0; |
||||
|
} |
||||
|
.form { |
||||
|
margin-top: 30px; |
||||
|
} |
||||
|
|
||||
|
.attachement-list { |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue