123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <template>
- <div>
- <el-form inline>
- <el-form-item label="应用系统名称:">
- <el-input v-model="appName" clearable></el-input>
- </el-form-item>
- <el-form-item>
- <dg-button type="primary" @click="handleSearch" icon="el-icon-search">查询</dg-button>
- </el-form-item>
- </el-form>
-
- <vxe-table ref="vxeGrid" :data="sourceData" v-bind="gridOptions">
- <vxe-table-column type="checkbox" width="60" align="center">
- <template #header="row">
- <span class="custom-checkbox">
- <el-checkbox
- :indeterminate="row.indeterminate"
- v-model="row.checked"
- @change="handleToggleAllCheck"
- ></el-checkbox>
- </span>
- </template>
- <template #checkbox="scoped">
- <span class="custom-checkbox">
- <el-checkbox
- :indeterminate="scoped.indeterminate"
- v-model="scoped.checked"
- @change="handleToggleCheck(scoped.row)"
- ></el-checkbox>
- </span>
- </template>
- </vxe-table-column>
- <vxe-table-column type="seq" width="60" align="center" title="序号"></vxe-table-column>
- <vxe-table-column align="center" title="应用功能名称" field="label" :treeNode="true"></vxe-table-column>
- </vxe-table>
- <div v-footer>
- <dg-button @click="handleCancel">取消</dg-button>
- <dg-button type="primary" @click="handleSubmit">确定</dg-button>
- </div>
- </div>
- </template>
- <script>
- import getTreeDataMixin from '@/pages/common/transfer-tree/mixin';
- import batchSetlevelAppFunc from './batch-setlevel-appfunc.vue';
- import { getFunIdsInRedList } from '@/api/list-manage';
- export default {
- props: {
- data: [Array]
- },
- mixins: [getTreeDataMixin],
- components: {},
- data() {
- return {
- appName: '',
- value: [],
- valueName: 'id',
- childrenName: 'child',
- pidName: 'p',
- gridOptions: {
- border: true,
- rowId: 'id',
- treeConfig: { children: 'child', indent: 40 },
- loading: false,
- checkboxConfig: {
-
- reserve: true
- }
- }
- };
- },
- computed: {},
- methods: {
- handleToggleCheck(row) {
- this.$refs.vxeGrid.toggleCheckboxRow(row);
- },
- handleToggleAllCheck() {
- this.$refs.vxeGrid.toggleAllCheckboxRow();
- },
- handleSearch() {
- this.dataSource = this.data.filter(item => item.label.indexOf(this.appName) > -1);
- },
- handleCancel() {
- this.$emit('close');
- },
- handleSubmit() {
-
- const checkboxRecords = this.$refs.vxeGrid.getCheckboxRecords(true);
- const indeterminateRecords = this.$refs.vxeGrid.getCheckboxIndeterminateRecords(true);
- const totalRecords = [...checkboxRecords, ...indeterminateRecords].filter((item) => item.appId);
- if (totalRecords.length > 0) {
- this.setLevel(totalRecords);
- } else {
- this.$message.warning('请至少选择一个应用功能!');
- }
- },
-
- setLevel(selectedData) {
- const vm = this;
- const layer = this.$dgLayer({
- title: '设置红名单等级',
- content: batchSetlevelAppFunc,
- props: {
- data: this.data,
- value: selectedData.map((item) => item.id),
- selectedData,
- operate: 'add'
- },
- on: {
- success() {
- vm.$emit('success');
- layer.close(layer.dialogIndex);
- }
- },
- cancel: function (index) {
-
- layer.close(index);
- return false;
- },
- area: ['800px', '600px']
- });
- }
- },
- created() {
-
- getFunIdsInRedList().then((res) => {
- this.value = res.data.content;
- });
- },
- mounted() {}
- };
- </script>
- <style lang='scss' scoped>
- @import url('../index.scss');
- </style>
|