From 7b9c91f9feb33f901aa09174fbbf119ee3ebcb24 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期一, 11 七月 2022 17:49:24 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqtOut

---
 src/components/userSelections/index.vue |  331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 331 insertions(+), 0 deletions(-)

diff --git a/src/components/userSelections/index.vue b/src/components/userSelections/index.vue
new file mode 100644
index 0000000..c71c9cf
--- /dev/null
+++ b/src/components/userSelections/index.vue
@@ -0,0 +1,331 @@
+<template>
+  <div class="system-edit-user-container">
+    <el-dialog
+        title="用户选择"
+        v-model="isShowDialog"
+        width="1000px"
+        draggable
+    >
+      <el-container class="layout-container-demo" style="height: 500px;overflow: auto;min-width: 960px">
+        <el-aside width="200px">
+          <el-input v-model="filterText" placeholder="请输入组织机构过滤" />
+          <el-tree
+            ref="treeRef"
+            class="filter-tree"
+            :data="data"
+            :props="defaultProps"
+            default-expand-all
+            :filter-node-method="filterNode"
+          />
+        </el-aside>
+        <el-container style="margin-right: 15px;min-width:560px;">
+          <el-header style="font-size: 12px">
+            <el-form :inline="true" :model="formInline" class="demo-form-inline">
+              <el-form-item>
+                <el-input size="default" v-model="formInline.name" placeholder="登录名"> </el-input>
+              </el-form-item>
+              <el-form-item>
+                <el-button size="default" type="primary" class="ml10" @click="onSubmit">
+                  查询
+                </el-button>
+                <el-button size="default" class="ml10" @click="submitReset">
+                  重置
+                </el-button>
+              </el-form-item>
+            </el-form>
+          </el-header>
+          <el-main>
+            <el-scrollbar>
+              <el-table
+                  :data="tableData"
+                  :header-cell-style="{background:'#f6f7fa',color:'#909399',fontWeight:400}"
+                  ref="multipleTableRef"
+                  highlight-current-row
+                  @row-click="rowClick"
+                  @selection-change="handleCurrentChange"
+              >
+                <el-table-column
+                  type="selection"
+                  width="50"
+                >
+                </el-table-column>
+                <el-table-column prop="date" label="登录名" width="100" show-overflow-tooltip sortable />
+                <el-table-column prop="name" label="用户名" width="100" show-overflow-tooltip sortable />
+                <el-table-column prop="address" label="所属机构" width="110"  show-overflow-tooltip sortable />
+                <el-table-column prop="address" label="所属部门" width="100" show-overflow-tooltip sortable/>
+                <el-table-column  label="状态"
+                  prop="tag"
+                  width="100"
+                  :filters="[
+                     { text: '正常', value: 'Home' },
+                     { text: '不正常', value: 'Office' },
+                   ]"
+                        :filter-method="filterTag"
+                        filter-placement="bottom-end">
+                  <template #default="scope">
+                    <el-tag
+                        :type="scope.row.tag === 'Home' ? '' : 'success'"
+                        disable-transitions
+                    >{{ scope.row.tag }}</el-tag
+                    >
+                  </template>
+                </el-table-column>
+              </el-table>
+            </el-scrollbar>
+          </el-main>
+        </el-container>
+        <div>
+          <el-tag v-for="tag in dynamicTags" :key="tag" class="mx-1" style="margin:5px" closable :disable-transitions="false" @close="handleClose(tag)">
+            {{ tag }}
+          </el-tag>
+        </div>
+      </el-container>
+      <template #footer>
+				<span class="dialog-footer">
+					<el-button size="default" type="primary"  @click="onCancel">确定</el-button>
+          <el-button size="default" @click="onCancel">关闭</el-button>
+				</span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script lang="ts">
+import {
+  ref,
+  defineComponent,
+  watch,
+  reactive,
+} from 'vue';
+
+import type {
+  ElTree,
+  ElTable,
+} from 'element-plus'
+
+interface Tree {
+  id: number
+  label: string
+  children?: Tree[]
+}
+interface User {
+  date: string
+  name: string
+  address: string
+}
+export default defineComponent({
+  name: 'userSelections',
+  components: {
+    // Search,
+  },
+  setup() {
+    const isShowDialog = ref(false)
+    // 打开弹窗
+    const openDialog = () => {
+      isShowDialog.value = true;
+    };
+    // 关闭弹窗
+    const closeDialog = () => {
+      isShowDialog.value = false;
+    };
+    // 取消
+    const onCancel = () => {
+      closeDialog();
+    };
+
+
+    const filterText = ref('')
+    const treeRef = ref<InstanceType<typeof ElTree>>()  //实例化
+
+    const defaultProps = {
+      children: 'children',
+      label: 'label',
+    }
+
+    // 监听搜索关键字改变
+    watch(filterText, (val) => {
+      treeRef.value!.filter(val)
+    })
+
+    // 节点过滤模糊搜索
+    const filterNode = (value: string, data: Tree) => {
+      if (!value) return true
+      return data.label.includes(value)
+    }
+
+    // 树形结构内容
+    const data: Tree[] = [
+      {
+        id: 1,
+        label: '广汇能源综合物流发展有限责任公司',
+        children: [
+          {
+            id: 4,
+            label: '经营班子',
+            children: []
+          },
+        ],
+      },
+      {
+        id: 2,
+        label: '生产运行部',
+        children: [
+          {
+            id: 5,
+            label: '工艺二班',
+          },
+          {
+            id: 6,
+            label: '灌装一班',
+          },
+        ],
+      },
+      {
+        id: 3,
+        label: '设备部',
+        children: [
+          {
+            id: 7,
+            label: '仪表班',
+          },
+          {
+            id: 8,
+            label: '机修班',
+          },
+        ],
+      },
+    ]
+    const item = {
+      date: '龚赛健',
+      name: '龚赛健',
+      address: '综合办公室',
+      tag: '正常',
+    }
+    const tableData = ref(Array.from({ length: 5 }).fill(item))
+
+    // 定义表单搜索
+    const formInline = reactive({
+      name: '',
+    })
+    // 搜索按钮
+    const onSubmit = () => {
+      console.log('submit!')
+    }
+
+    const multipleTableRef = ref<InstanceType<typeof ElTable>>()
+    // const currentRow = ref()
+
+    // 当某一行被点击时会触发该事件
+    // const handleRowClick = (row: any, column: any, event: Event) => {
+    //   emit('row-click', row, column, event)
+    // }
+    // const singleTableRef = ref<InstanceType<typeof ElTable>>()
+    // const setCurrent = (row?: User) => {
+    //   singleTableRef.value!.setCurrentRow(row)
+    // }
+    // const handleCurrentChange = (val: User | undefined) => {
+    //   currentRow.value = val
+    // }
+
+    // 右方点击添加后显示标签
+    const dynamicTags = ref(['Tag 1', 'Tag 2', 'Tag 3']);
+    const handleClose = (tag: string) => {
+      dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
+    };
+    return {
+      openDialog,
+      closeDialog,
+      isShowDialog,
+      onCancel,
+      defaultProps,
+      filterNode,
+      data,
+      tableData,
+      formInline,
+      onSubmit,
+      // currentRow,
+      // setCurrent,
+      multipleTableRef,
+      handleClose,
+      dynamicTags,
+      // handleCurrentChange,
+    };
+  },
+});
+</script>
+<style scoped lang="scss">
+.layout-container-demo .el-header {
+  position: relative;
+  color: var(--el-text-color-primary);
+  line-height: 32px;
+  --el-header-height: 45px;
+}
+.layout-container-demo .el-aside {
+  padding: 10px;
+  border: 1px solid #ebeef5;
+  color: var(--el-text-color-primary);
+}
+::v-deep .el-input--large .el-input__inner {
+  height: 32px!important;
+  line-height: 32px!important;
+}
+.layout-container-demo .el-menu {
+  border-right: none;
+}
+.layout-container-demo .el-main {
+  padding: 0;
+}
+.layout-container-demo .toolbar {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  height: 100%;
+  right: 20px;
+}
+.el-input--large{
+  //width: 178px;
+  height: 32px;
+}
+.el-tree{
+  overflow: auto;
+}
+::-webkit-scrollbar {
+  height: 1px;
+
+}
+::-webkit-scrollbar-thumb {
+  background-color: transparent;
+}
+// 鼠标悬浮样式
+:hover::-webkit-scrollbar-thumb {
+  border-radius: 15px;
+  background-color: #d8d9db;
+}
+::v-deep .el-input__wrapper{
+  width: 215px;
+}
+::v-deep .el-form-item{
+  margin-bottom: 0;
+}
+//弹窗底部边框线
+::v-deep .el-dialog__footer{
+  border-top: 1px solid #e8e8e8;
+  border-radius: 0 0 4px 4px;
+}
+//弹窗顶部边框线
+::v-deep .el-dialog__header {
+  border-bottom: 1px solid #e8e8e8;
+  margin-right: 0;
+  border-radius: 4px 4px 0 0;
+}
+//单选框圆形
+::v-deep .el-table__header .el-table-column--selection .cell .el-checkbox {
+  display:none
+}
+::v-deep .el-table-column--selection .cell{
+  text-align: center;
+}
+::v-deep .el-checkbox__input .el-checkbox__inner{
+  border-radius: 50%;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.2