Commit 34b4247b by qinjianhui

feat: 公告管理优化

parent 55e5bc32
...@@ -123,6 +123,45 @@ ...@@ -123,6 +123,45 @@
> >
</div> </div>
</el-dialog> </el-dialog>
<el-dialog
:visible.sync="releaseVisible"
:close-on-click-modal="false"
title="发布"
width="600px"
>
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
>全选</el-checkbox
>
<div style="margin: 15px 0"></div>
<el-checkbox-group
v-model="checkedCompany"
@change="handleCheckedCompanyChange"
>
<el-checkbox
style="width: 100px"
v-for="c in releaseList"
:label="c.id"
:key="c.id"
>{{ c.apiName }}</el-checkbox
>
</el-checkbox-group>
<span slot="footer">
<el-button
size="mini"
@click="releaseVisible = false"
>取消</el-button
>
<el-button
size="mini"
@click="confirmRelease"
type="primary"
>确认</el-button
>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -135,6 +174,9 @@ export default { ...@@ -135,6 +174,9 @@ export default {
components: { 'v-editor': Editor, tableView }, components: { 'v-editor': Editor, tableView },
data() { data() {
return { return {
checkAll: false,
isIndeterminate: false,
checkedCompany: [],
userList: [], userList: [],
pageSize: 50, pageSize: 50,
currentPage: 1, currentPage: 1,
...@@ -166,6 +208,8 @@ export default { ...@@ -166,6 +208,8 @@ export default {
content: '', content: '',
priority: false, priority: false,
}, },
releaseVisible: false,
releaseList: [],
} }
}, },
mounted() { mounted() {
...@@ -208,13 +252,15 @@ export default { ...@@ -208,13 +252,15 @@ export default {
width: 100, width: 100,
render: (item) => ( render: (item) => (
<div> <div>
<span {!item.enableFlag && (
class="icon-view icon-edit-view" <span
title="编辑" class="icon-view icon-edit-view"
onClick={() => this.editDialog(item)} title="编辑"
> onClick={() => this.editDialog(item)}
<i class="el-icon-edit"></i> >
</span> <i class="el-icon-edit"></i>
</span>
)}
{!item.enableFlag && ( {!item.enableFlag && (
<span <span
class="icon-view icon-primary-view" class="icon-view icon-primary-view"
...@@ -224,6 +270,15 @@ export default { ...@@ -224,6 +270,15 @@ export default {
<i class="el-icon-s-promotion"></i> <i class="el-icon-s-promotion"></i>
</span> </span>
)} )}
{!item.enableFlag && (
<span
class="icon-view icon-del-view"
title="删除"
onClick={() => this.deleteAnnounces(item)}
>
<i class="el-icon-delete"></i>
</span>
)}
</div> </div>
), ),
}, },
...@@ -231,6 +286,20 @@ export default { ...@@ -231,6 +286,20 @@ export default {
}, },
}, },
methods: { methods: {
handleCheckAllChange(val) {
this.checkedCompany = val
? this.releaseList.map((e) => e.id)
: []
this.isIndeterminate = false
},
handleCheckedCompanyChange(value) {
const checkedCount = value.length
this.checkAll =
checkedCount === this.releaseList.length
this.isIndeterminate =
checkedCount > 0 &&
checkedCount < this.releaseList.length
},
search() { search() {
this.getList() this.getList()
}, },
...@@ -329,8 +398,20 @@ export default { ...@@ -329,8 +398,20 @@ export default {
}, },
async release(item) { async release(item) {
try { try {
const res = await post('sys/domain/list')
if (res.code !== 200) return
this.releaseList = res.data
this.rowId = item.id
this.checkedCompany = []
this.releaseVisible = true
} catch (e) {
console.error(e)
}
},
async deleteAnnounces(item) {
try {
const res = await get( const res = await get(
'sys/announcement/publish/' + item.id, 'sys/announcement/delete/' + item.id,
) )
if (res.code !== 200) return if (res.code !== 200) return
this.$message.success(res.message) this.$message.success(res.message)
...@@ -339,6 +420,23 @@ export default { ...@@ -339,6 +420,23 @@ export default {
console.error(e) console.error(e)
} }
}, },
async confirmRelease() {
if (this.checkedCompany.length === 0) {
return this.$message.warning('请至少选择一条记录')
}
try {
const res = await post('sys/announcement/publish', {
id: this.rowId,
dataSourcelist: this.checkedCompany,
})
if (res.code !== 200) return
this.$message.success(res.message)
this.releaseVisible = false
this.getList()
} catch (e) {
console.error(e)
}
},
}, },
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment