jiangping
2024-08-26 e23a1db0b60437f17d09d65c65f8fd0c8a5d88c7
admin/src/components/business/OperaDeviceRoleWindow.vue
@@ -2,14 +2,15 @@
    <GlobalWindow
        :title="title"
        :visible.sync="visible"
        width="900px"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-form :model="form" ref="form" :rules="rules">
            <el-form-item label="门禁组名称" prop="name">
            <el-form-item label="门禁点分组名称" prop="name">
                <el-input v-model="form.name" placeholder="请输入名称" v-trim/>
            </el-form-item>
            <el-form-item label="默认门禁组" prop="isDefault">
            <el-form-item label="默认门禁点分组" prop="isDefault">
                <el-switch
                    v-model="form.isDefault"
                    active-color="#13ce66"
@@ -23,9 +24,16 @@
                    <el-radio :label="0">全部门禁</el-radio>
                    <el-radio :label="1">部分门禁</el-radio>
                </el-radio-group>
                <el-checkbox-group v-model="form.doorIds" v-if="form.radio === 1">
                    <el-checkbox :label="item.id" v-for="(item, index) in device" :key="index">{{item.name}}</el-checkbox>
                </el-checkbox-group>
                <el-transfer
                    v-if="form.radio === 1"
                    style="margin-top: 15px;"
                    :titles="['未选门禁点', '已选门禁点']"
                    filterable
                    :filter-method="filterMethod"
                    filter-placeholder="请输入门禁点或区域名称"
                    v-model="form.doorIds"
                    :data="device">
                </el-transfer>
            </el-form-item>
        </el-form>
    </GlobalWindow>
@@ -47,7 +55,7 @@
        }
      }
      callback()
    }
    };
    return {
      // 表单数据
      form: {
@@ -59,6 +67,10 @@
        radio: 0
      },
      device: [],
      filterMethod(query, item) {
        if (!query) return item;
        return item.label.indexOf(query) > -1 || item.area.indexOf(query) > -1;
      },
      // 验证规则
      rules: {
        name: [
@@ -148,7 +160,14 @@
    getLists () {
      getList({})
        .then(res => {
          this.device = res
          this.device = res.map(item => {
            return {
              label: item.doorName,
              area: item.regionPathName,
              key: item.id
            }
          })
          console.log(this.device)
        })
    },
    changeRadio (e) {
@@ -176,3 +195,9 @@
  }
}
</script>
<style>
    .el-transfer-panel {
        width: 350px !important;
    }
</style>