Browse Source

增加空间扩容和文档加密级别相关内容

wukai 2 years ago
parent
commit
448f07027b

+ 40 - 23
src/api/biz/expansion.js

@@ -2,43 +2,60 @@ import request from '@/utils/request'
 
 // 查询空间扩容管理列表
 export function listExpansion(query) {
-  return request({
-    url: '/biz/expansion/list',
-    method: 'get',
-    params: query
-  })
+	return request({
+		url: '/biz/expansion/list',
+		method: 'get',
+		params: query
+	})
 }
 
 // 查询空间扩容管理详细
 export function getExpansion(autoId) {
-  return request({
-    url: '/biz/expansion/' + autoId,
-    method: 'get'
-  })
+	return request({
+		url: '/biz/expansion/' + autoId,
+		method: 'get'
+	})
 }
 
 // 新增空间扩容管理
 export function addExpansion(data) {
-  return request({
-    url: '/biz/expansion',
-    method: 'post',
-    data: data
-  })
+	return request({
+		url: '/biz/expansion',
+		method: 'post',
+		data: data
+	})
 }
 
 // 修改空间扩容管理
 export function updateExpansion(data) {
-  return request({
-    url: '/biz/expansion',
-    method: 'put',
-    data: data
-  })
+	return request({
+		url: '/biz/expansion',
+		method: 'put',
+		data: data
+	})
 }
 
 // 删除空间扩容管理
 export function delExpansion(autoId) {
-  return request({
-    url: '/biz/expansion/' + autoId,
-    method: 'delete'
-  })
+	return request({
+		url: '/biz/expansion/' + autoId,
+		method: 'delete'
+	})
 }
+
+// 同意扩容
+export function agree(autoId) {
+	return request({
+		url: '/biz/expansion/agree/' + autoId,
+		method: 'post'
+	})
+}
+
+// 拒绝扩容
+export function refuse(autoId, remark) {
+	return request({
+		url: '/biz/expansion/refuse/' + autoId,
+		method: 'post',
+		data: remark
+	})
+}

+ 44 - 0
src/api/biz/level.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询文档目录加密级别列表
+export function listLevel(query) {
+  return request({
+    url: '/biz/level/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询文档目录加密级别详细
+export function getLevel(levelId) {
+  return request({
+    url: '/biz/level/' + levelId,
+    method: 'get'
+  })
+}
+
+// 新增文档目录加密级别
+export function addLevel(data) {
+  return request({
+    url: '/biz/level',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改文档目录加密级别
+export function updateLevel(data) {
+  return request({
+    url: '/biz/level',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除文档目录加密级别
+export function delLevel(levelId) {
+  return request({
+    url: '/biz/level/' + levelId,
+    method: 'delete'
+  })
+}

+ 261 - 242
src/views/biz/expansion/index.vue

@@ -1,266 +1,285 @@
 <template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="空间名称" prop="spaceName">
-        <el-input
-          v-model="queryParams.spaceName"
-          placeholder="请输入空间名称"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="扩容状态" prop="expandStatus">
-        <el-select v-model="queryParams.expandStatus" placeholder="请选择扩容状态" clearable>
-          <el-option
-            v-for="dict in expansion_status"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="申请人" prop="createBy">
-        <el-input
-          v-model="queryParams.createBy"
-          placeholder="请输入申请人"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
+	<div class="app-container">
+		<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+			<el-form-item label="空间名称" prop="spaceName">
+				<el-input v-model="queryParams.spaceName" placeholder="请输入空间名称" clearable @keyup.enter="handleQuery" />
+			</el-form-item>
+			<el-form-item label="扩容状态" prop="expandStatus">
+				<el-select v-model="queryParams.expandStatus" placeholder="请选择扩容状态" clearable>
+					<el-option v-for="dict in expansion_status" :key="dict.value" :label="dict.label"
+						:value="dict.value" />
+				</el-select>
+			</el-form-item>
+			<el-form-item label="申请人" prop="createBy">
+				<el-input v-model="queryParams.createBy" placeholder="请输入申请人" clearable @keyup.enter="handleQuery" />
+			</el-form-item>
+			<el-form-item>
+				<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+				<el-button icon="Refresh" @click="resetQuery">重置</el-button>
+			</el-form-item>
+		</el-form>
 
 
-    <el-table v-loading="loading" :data="expansionList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <!-- <el-table-column label="自增ID" align="center" prop="autoId" /> -->
-      <!-- <el-table-column label="空间ID" align="center" prop="spaceId" /> -->
-      <el-table-column label="空间名称" align="center" prop="spaceName" />
-      <el-table-column label="当前容量" align="center" prop="currentCap" />
-      <el-table-column label="申请扩充容量" align="center" prop="expandCap" />
-      <el-table-column label="扩容原因" align="center" prop="expandReason" />
-      <el-table-column label="扩容状态" align="center" prop="expandStatus">
-        <template #default="scope">
-          <dict-tag :options="expansion_status" :value="scope.row.expandStatus"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="审核说明" align="center" prop="description" />
-      <el-table-column label="申请人" align="center" prop="createBy" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['biz:expansion:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['biz:expansion:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
+		<el-table v-loading="loading" :data="expansionList" @selection-change="handleSelectionChange">
+			<el-table-column type="selection" width="55" align="center" />
+			<!-- <el-table-column label="自增ID" align="center" prop="autoId" /> -->
+			<!-- <el-table-column label="空间ID" align="center" prop="spaceId" /> -->
+			<el-table-column label="空间名称" align="center" prop="spaceName" />
+			<el-table-column label="当前容量" align="center" prop="currentCap" />
+			<el-table-column label="申请扩充容量" align="center" prop="expandCap" />
+			<el-table-column label="扩容原因" align="center" prop="expandReason" />
+			<el-table-column label="扩容状态" align="center" prop="expandStatus">
+				<template #default="scope">
+					<dict-tag :options="expansion_status" :value="scope.row.expandStatus" />
+				</template>
+			</el-table-column>
+			<el-table-column label="审核说明" align="center" prop="description" />
+			<el-table-column label="申请人" align="center" prop="createBy" />
+			<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+				<template #default="scope">
+					<el-button type="success" icon="Select" @click="handAgree(scope.row)"
+						v-if="scope.row.expandStatus=='1'">通过</el-button>
+					<el-button type="info" icon="CloseBold" @click="handRefuse(scope.row)"
+						v-if="scope.row.expandStatus=='1'">拒绝</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
+		<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum"
+			v-model:limit="queryParams.pageSize" @pagination="getList" />
 
-    <!-- 添加或修改空间扩容管理对话框 -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="expansionRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="空间ID" prop="spaceId">
-          <el-input v-model="form.spaceId" placeholder="请输入空间ID" />
-        </el-form-item>
-        <el-form-item label="空间名称" prop="spaceName">
-          <el-input v-model="form.spaceName" placeholder="请输入空间名称" />
-        </el-form-item>
-        <el-form-item label="当前容量" prop="currentCap">
-          <el-input v-model="form.currentCap" placeholder="请输入当前容量" />
-        </el-form-item>
-        <el-form-item label="申请扩充容量" prop="expandCap">
-          <el-input v-model="form.expandCap" placeholder="请输入申请扩充容量" />
-        </el-form-item>
-        <el-form-item label="扩容原因" prop="expandReason">
-          <el-input v-model="form.expandReason" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="扩容状态" prop="expandStatus">
-          <el-radio-group v-model="form.expandStatus">
-            <el-radio
-              v-for="dict in expansion_status"
-              :key="dict.value"
-              :label="dict.value"
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="审核说明" prop="description">
-          <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="申请人ID" prop="created">
-          <el-input v-model="form.created" placeholder="请输入申请人ID" />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
-        </el-form-item>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">确 定</el-button>
-          <el-button @click="cancel">取 消</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
+		<!-- 添加或修改空间扩容管理对话框 -->
+		<el-dialog :title="title" v-model="open" width="500px" append-to-body>
+			<el-form ref="expansionRef" :model="form" :rules="rules" label-width="80px">
+				<el-form-item label="空间ID" prop="spaceId">
+					<el-input v-model="form.spaceId" placeholder="请输入空间ID" />
+				</el-form-item>
+				<el-form-item label="空间名称" prop="spaceName">
+					<el-input v-model="form.spaceName" placeholder="请输入空间名称" />
+				</el-form-item>
+				<el-form-item label="当前容量" prop="currentCap">
+					<el-input v-model="form.currentCap" placeholder="请输入当前容量" />
+				</el-form-item>
+				<el-form-item label="申请扩充容量" prop="expandCap">
+					<el-input v-model="form.expandCap" placeholder="请输入申请扩充容量" />
+				</el-form-item>
+				<el-form-item label="扩容原因" prop="expandReason">
+					<el-input v-model="form.expandReason" type="textarea" placeholder="请输入内容" />
+				</el-form-item>
+				<el-form-item label="扩容状态" prop="expandStatus">
+					<el-radio-group v-model="form.expandStatus">
+						<el-radio v-for="dict in expansion_status" :key="dict.value"
+							:label="dict.value">{{dict.label}}</el-radio>
+					</el-radio-group>
+				</el-form-item>
+				<el-form-item label="审核说明" prop="description">
+					<el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
+				</el-form-item>
+				<el-form-item label="申请人ID" prop="created">
+					<el-input v-model="form.created" placeholder="请输入申请人ID" />
+				</el-form-item>
+				<el-form-item label="备注" prop="remark">
+					<el-input v-model="form.remark" placeholder="请输入备注" />
+				</el-form-item>
+			</el-form>
+			<template #footer>
+				<div class="dialog-footer">
+					<el-button type="primary" @click="submitForm">确 定</el-button>
+					<el-button @click="cancel">取 消</el-button>
+				</div>
+			</template>
+		</el-dialog>
+	</div>
 </template>
 
 <script setup name="Expansion">
-    import {getExpansion, listExpansion} from "@/api/biz/expansion";
+	import {
+		getExpansion,
+		listExpansion,
+		refuse,
+		agree
+	} from "@/api/biz/expansion";
 
-    const { proxy } = getCurrentInstance();
-const { expansion_status } = proxy.useDict('expansion_status');
+	const {
+		proxy
+	} = getCurrentInstance();
+	const {
+		expansion_status
+	} = proxy.useDict('expansion_status');
 
-const expansionList = ref([]);
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref([]);
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const title = ref("");
+	const expansionList = ref([]);
+	const open = ref(false);
+	const loading = ref(true);
+	const showSearch = ref(true);
+	const ids = ref([]);
+	const single = ref(true);
+	const multiple = ref(true);
+	const total = ref(0);
+	const title = ref("");
 
-const data = reactive({
-  form: {},
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
-    spaceId: null,
-    spaceName: null,
-    currentCap: null,
-    expandCap: null,
-    expandReason: null,
-    expandStatus: null,
-    description: null,
-    created: null,
-    createBy: null,
-  },
-  rules: {
-  }
-});
+	const data = reactive({
+		form: {},
+		queryParams: {
+			pageNum: 1,
+			pageSize: 10,
+			spaceId: null,
+			spaceName: null,
+			currentCap: null,
+			expandCap: null,
+			expandReason: null,
+			expandStatus: '1',
+			description: null,
+			created: null,
+			createBy: null,
+		},
+		rules: {}
+	});
 
-const { queryParams, form, rules } = toRefs(data);
+	const {
+		queryParams,
+		form,
+		rules
+	} = toRefs(data);
 
-/** 查询空间扩容管理列表 */
-function getList() {
-  loading.value = true;
-  listExpansion(queryParams.value).then(response => {
-    expansionList.value = response.rows;
-    total.value = response.total;
-    loading.value = false;
-  });
-}
+	/** 查询空间扩容管理列表 */
+	function getList() {
+		loading.value = true;
+		listExpansion(queryParams.value).then(response => {
+			expansionList.value = response.rows;
+			total.value = response.total;
+			loading.value = false;
+		});
+	}
 
-// 取消按钮
-function cancel() {
-  open.value = false;
-  reset();
-}
+	// 取消按钮
+	function cancel() {
+		open.value = false;
+		reset();
+	}
 
-// 表单重置
-function reset() {
-  form.value = {
-    autoId: null,
-    spaceId: null,
-    spaceName: null,
-    currentCap: null,
-    expandCap: null,
-    expandReason: null,
-    expandStatus: null,
-    description: null,
-    created: null,
-    createBy: null,
-    createTime: null,
-    updateBy: null,
-    updateTime: null,
-    remark: null
-  };
-  proxy.resetForm("expansionRef");
-}
+	// 表单重置
+	function reset() {
+		form.value = {
+			autoId: null,
+			spaceId: null,
+			spaceName: null,
+			currentCap: null,
+			expandCap: null,
+			expandReason: null,
+			expandStatus: null,
+			description: null,
+			created: null,
+			createBy: null,
+			createTime: null,
+			updateBy: null,
+			updateTime: null,
+			remark: null
+		};
+		proxy.resetForm("expansionRef");
+	}
 
-/** 搜索按钮操作 */
-function handleQuery() {
-  queryParams.value.pageNum = 1;
-  getList();
-}
+	/** 搜索按钮操作 */
+	function handleQuery() {
+		queryParams.value.pageNum = 1;
+		getList();
+	}
 
-/** 重置按钮操作 */
-function resetQuery() {
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
+	/** 重置按钮操作 */
+	function resetQuery() {
+		proxy.resetForm("queryRef");
+		handleQuery();
+	}
 
-// 多选框选中数据
-function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.autoId);
-  single.value = selection.length != 1;
-  multiple.value = !selection.length;
-}
+	// 多选框选中数据
+	function handleSelectionChange(selection) {
+		ids.value = selection.map(item => item.autoId);
+		single.value = selection.length != 1;
+		multiple.value = !selection.length;
+	}
 
-/** 新增按钮操作 */
-function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "添加空间扩容管理";
-}
+	/** 新增按钮操作 */
+	function handleAdd() {
+		reset();
+		open.value = true;
+		title.value = "添加空间扩容管理";
+	}
 
-/** 修改按钮操作 */
-function handleUpdate(row) {
-  reset();
-  const _autoId = row.autoId || ids.value
-  getExpansion(_autoId).then(response => {
-    form.value = response.data;
-    open.value = true;
-    title.value = "修改空间扩容管理";
-  });
-}
+	/** 修改按钮操作 */
+	function handleUpdate(row) {
+		reset();
+		const _autoId = row.autoId || ids.value
+		getExpansion(_autoId).then(response => {
+			form.value = response.data;
+			open.value = true;
+			title.value = "修改空间扩容管理";
+		});
+	}
 
-/** 提交按钮 */
-function submitForm() {
-  proxy.$refs["expansionRef"].validate(valid => {
-    if (valid) {
-      if (form.value.autoId != null) {
-        updateExpansion(form.value).then(response => {
-          proxy.$modal.msgSuccess("修改成功");
-          open.value = false;
-          getList();
-        });
-      } else {
-        addExpansion(form.value).then(response => {
-          proxy.$modal.msgSuccess("新增成功");
-          open.value = false;
-          getList();
-        });
-      }
-    }
-  });
-}
+	/** 提交按钮 */
+	function submitForm() {
+		proxy.$refs["expansionRef"].validate(valid => {
+			if (valid) {
+				if (form.value.autoId != null) {
+					updateExpansion(form.value).then(response => {
+						proxy.$modal.msgSuccess("修改成功");
+						open.value = false;
+						getList();
+					});
+				} else {
+					addExpansion(form.value).then(response => {
+						proxy.$modal.msgSuccess("新增成功");
+						open.value = false;
+						getList();
+					});
+				}
+			}
+		});
+	}
 
-/** 删除按钮操作 */
-function handleDelete(row) {
-  const _autoIds = row.autoId || ids.value;
-  proxy.$modal.confirm('是否确认删除空间扩容管理编号为"' + _autoIds + '"的数据项?').then(function() {
-    return delExpansion(_autoIds);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
+	/** 删除按钮操作 */
+	function handleDelete(row) {
+		const _autoIds = row.autoId || ids.value;
+		proxy.$modal.confirm('是否确认删除空间扩容管理编号为"' + _autoIds + '"的数据项?').then(function() {
+			return delExpansion(_autoIds);
+		}).then(() => {
+			getList();
+			proxy.$modal.msgSuccess("删除成功");
+		}).catch(() => {});
+	}
 
-/** 导出按钮操作 */
-function handleExport() {
-  proxy.download('biz/expansion/export', {
-    ...queryParams.value
-  }, `expansion_${new Date().getTime()}.xlsx`)
-}
+	/** 通过按钮操作 */
+	function handAgree(row) {
+		proxy.$modal.confirm('是否确认通过"' + row.spaceName + '"的扩容申请?').then(function() {
+			return agree(row.autoId);
+		}).then(() => {
+			getList();
+			proxy.$modal.msgSuccess("操作成功!");
+		}).catch(() => {});
+	}
+	/** 拒绝按钮操作 */
+	function handRefuse(row) {
+		proxy.$prompt('请输入拒绝"' + row.spaceName + '"的扩容申请理由', "拒绝申请", {
+			confirmButtonText: "确定",
+			cancelButtonText: "取消",
+			closeOnClickModal: false,
+			inputPattern: /^.{1,400}$/,
+			inputErrorMessage: " 拒绝理由不能为空且小于400字",
+		}).then(({
+			value
+		}) => {
+			refuse(row.autoId, value).then(response => {
+				getList();
+				proxy.$modal.msgSuccess("操作成功!");
+			});
+		}).catch(() => {});
+	}
 
-getList();
-</script>
+	/** 导出按钮操作 */
+	function handleExport() {
+		proxy.download('biz/expansion/export', {
+			...queryParams.value
+		}, `expansion_${new Date().getTime()}.xlsx`)
+	}
+
+	getList();
+</script>

+ 294 - 0
src/views/biz/level/index.vue

@@ -0,0 +1,294 @@
+<template>
+	<div class="app-container">
+		<el-table v-loading="loading" :data="levelList" @selection-change="handleSelectionChange">
+			<el-table-column label="名称" align="center">
+				<template #default="scope">
+					<el-input v-model="scope.row.levelName"></el-input>
+				</template>
+			</el-table-column>
+			<el-table-column label="编码" align="center" prop="levelCode" />
+			<el-table-column label="预览" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0100"
+						:checked="scope.row.roles.l0100"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="下载" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0200"
+						:checked="scope.row.roles.l0200"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="一次分享" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0300"
+						:checked="scope.row.roles.l0300"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="无限分享" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0400"
+						:checked="scope.row.roles.l0400"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="内容加密" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0500"
+						:checked="scope.row.roles.l0500"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="二次认证" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0600"
+						:checked="scope.row.roles.l0600"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="私有安全访问码" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0700"
+						:checked="scope.row.roles.l0700"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="内容防复制" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0800"
+						:checked="scope.row.roles.l0800"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="防拍照" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l0900"
+						:checked="scope.row.roles.l0900"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="删除" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l1000"
+						:checked="scope.row.roles.l1000"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="创建" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l1100"
+						:checked="scope.row.roles.l1100"></el-checkbox>
+				</template>
+			</el-table-column>
+			<el-table-column label="移动/复制" align="center" width="100">
+				<template #default="scope">
+					<el-checkbox true-label="1" false-label="0" v-model="scope.row.roles.l1200"
+						:checked="scope.row.roles.l1200"></el-checkbox>
+				</template>
+			</el-table-column>
+			<!-- <el-table-column label="等级对应权限" align="center" prop="levelRoles">
+				<template #default="scope">
+					<dict-tag :options="doc_roles" :value="scope.row.roles ? scope.row.roles : []" />
+				</template>
+			</el-table-column>
+			<el-table-column label="创建人" align="center" prop="createBy" />
+			<el-table-column label="创建时间" align="center" prop="createTime" width="180">
+				<template #default="scope">
+					<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column label="更新人" align="center" prop="updateBy" />
+			<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
+				<template #default="scope">
+					<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column label="备注" align="center" prop="remark" />
+			<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+				<template #default="scope">
+					<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
+						v-hasPermi="['biz:level:edit']">修改</el-button>
+					<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
+						v-hasPermi="['biz:level:remove']">删除</el-button>
+				</template>
+			</el-table-column>
+			 -->
+		</el-table>
+		<el-form label-width="100px">
+			<div style="text-align: center;margin-left:-100px;margin-top:10px;">
+				<el-button type="primary" @click="submitForm()">保存</el-button>
+			</div>
+		</el-form>
+		<!-- <pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum"
+			v-model:limit="queryParams.pageSize" @pagination="getList" /> -->
+	</div>
+</template>
+
+<script setup name="Level">
+	import {
+		getLevel,
+		listLevel,
+		updateLevel
+	} from "@/api/biz/level";
+	const {
+		proxy
+	} = getCurrentInstance();
+	const {
+		doc_roles
+	} = proxy.useDict('doc_roles');
+
+	const levelList = ref([]);
+	const open = ref(false);
+	const loading = ref(true);
+	const showSearch = ref(true);
+	const ids = ref([]);
+	const single = ref(true);
+	const multiple = ref(true);
+	const total = ref(0);
+	const title = ref("");
+
+	const data = reactive({
+		form: {},
+		queryParams: {
+			pageNum: 1,
+			pageSize: 10,
+			levelName: null,
+			levelCode: null,
+			levelRoles: null,
+			createBy: null,
+			createTime: null,
+			updateBy: null,
+			updateTime: null,
+			remark: null
+		},
+		rules: {
+			levelCode: [{
+				required: true,
+				message: "等级编码不能为空",
+				trigger: "blur"
+			}],
+			levelRoles: [{
+				required: true,
+				message: "等级对应权限不能为空",
+				trigger: "blur"
+			}],
+		}
+	});
+
+	const {
+		queryParams,
+		form,
+		rules
+	} = toRefs(data);
+
+	/** 查询文档目录加密级别列表 */
+	function getList() {
+		loading.value = true;
+		listLevel(queryParams.value).then(response => {
+			levelList.value = response.rows;
+			console.log(response.rows[0].roles.l0100)
+			console.log(levelList);
+			total.value = response.total;
+			loading.value = false;
+		});
+	}
+
+	// 取消按钮
+	function cancel() {
+		open.value = false;
+		reset();
+	}
+
+	// 表单重置
+	function reset() {
+		form.value = {
+			levelId: null,
+			levelName: null,
+			levelCode: null,
+			roles: [],
+			createBy: null,
+			createTime: null,
+			updateBy: null,
+			updateTime: null,
+			remark: null
+		};
+		proxy.resetForm("levelRef");
+	}
+
+	/** 搜索按钮操作 */
+	function handleQuery() {
+		queryParams.value.pageNum = 1;
+		getList();
+	}
+
+	/** 重置按钮操作 */
+	function resetQuery() {
+		proxy.resetForm("queryRef");
+		handleQuery();
+	}
+
+	// 多选框选中数据
+	function handleSelectionChange(selection) {
+		ids.value = selection.map(item => item.levelId);
+		single.value = selection.length != 1;
+		multiple.value = !selection.length;
+	}
+
+	/** 新增按钮操作 */
+	function handleAdd() {
+		reset();
+		open.value = true;
+		title.value = "添加文档目录加密级别";
+	}
+
+	/** 修改按钮操作 */
+	function handleUpdate(row) {
+		reset();
+		const _levelId = row.levelId || ids.value
+		getLevel(_levelId).then(response => {
+			form.value = response.data;
+			// form.value.roles = form.value.roles.split(",");
+			open.value = true;
+			title.value = "修改文档目录加密级别";
+		});
+	}
+
+	/** 提交按钮 */
+	function submitForm() {
+		updateLevel(levelList.value).then(response => {
+			proxy.$modal.msgSuccess("修改成功");
+		});
+		console.log(levelList.value);
+		// proxy.$refs["levelRef"].validate(valid => {
+		// 	if (valid) {
+		// 		form.value.roles = form.value.roles.join(",");
+		// 		if (form.value.levelId != null) {
+		// 			updateLevel(form.value).then(response => {
+		// 				proxy.$modal.msgSuccess("修改成功");
+		// 				open.value = false;
+		// 				getList();
+		// 			});
+		// 		} else {
+		// 			addLevel(form.value).then(response => {
+		// 				proxy.$modal.msgSuccess("新增成功");
+		// 				open.value = false;
+		// 				getList();
+		// 			});
+		// 		}
+		// 	}
+		// });
+	}
+
+	/** 删除按钮操作 */
+	function handleDelete(row) {
+		const _levelIds = row.levelId || ids.value;
+		proxy.$modal.confirm('是否确认删除文档目录加密级别编号为"' + _levelIds + '"的数据项?').then(function() {
+			return delLevel(_levelIds);
+		}).then(() => {
+			getList();
+			proxy.$modal.msgSuccess("删除成功");
+		}).catch(() => {});
+	}
+
+	/** 导出按钮操作 */
+	function handleExport() {
+		proxy.download('biz/level/export', {
+			...queryParams.value
+		}, `level_${new Date().getTime()}.xlsx`)
+	}
+
+	getList();
+</script>

+ 33 - 18
src/views/system/user/index.vue

@@ -102,15 +102,15 @@
 								<el-button link type="primary" icon="Key" @click="handleResetPwd(scope.row)"
 									v-hasPermi="['system:user:resetPwd']"></el-button>
 							</el-tooltip>
-							<el-tooltip content="登录限制" placement="top" v-if="scope.row.userId !== 1">
-								<!-- <i class="el-icon-info"></i> -->
-								<el-button link type="primary" icon="InfoFilled" @click="handleLoginLimit(scope.row)"
-									v-hasPermi="['system:user:resetPwd']"></el-button>
-							</el-tooltip>
 							<el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
 								<el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)"
 									v-hasPermi="['system:user:edit']"></el-button>
 							</el-tooltip>
+							<el-tooltip content="登录限制" placement="top" v-if="scope.row.userId !== 1">
+								<!-- <i class="el-icon-info"></i> -->
+								<el-button link type="primary" icon="Operation" @click="handleLoginLimit(scope.row)"
+									v-hasPermi="['system:user:resetPwd']"></el-button>
+							</el-tooltip>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -241,23 +241,22 @@
 
 		<!-- 修改用户登录限制对话框 -->
 		<el-dialog :title="login.title" v-model="login.open" width="500px" append-to-body>
-			<el-form ref="expandRef" :model="form" :rules="rules" label-width="80px">
-				<el-form-item label="上次修改密码时间" prop="lastUpdateTime">
-					<el-date-picker clearable v-model="form.lastUpdateTime" type="date" value-format="YYYY-MM-DD"
-						placeholder="请选择上次修改密码时间">
-					</el-date-picker>
-				</el-form-item>
+			<el-form ref="expandRef" :model="loginForm" :rules="rules" label-width="80px">
 				<el-form-item label="登录IP限制" prop="loginIp">
-					<el-input v-model="form.loginIp" type="textarea" placeholder="请输入内容" />
+					<el-input v-model="form.loginIp" type="textarea" placeholder="请输入限制登录IP地址,多个匹配项以;分隔." />
 				</el-form-item>
 				<el-form-item label="登录时间限制" prop="loginTime">
+					<el-row>
+						<el-time-select></el-time-select>
+						<el-time-select></el-time-select>
+					</el-row>
 					<el-input v-model="form.loginTime" type="textarea" placeholder="请输入内容" />
 				</el-form-item>
 			</el-form>
 			<template #footer>
 				<div class="dialog-footer">
-					<el-button type="primary" @click="submitForm">确 定</el-button>
-					<el-button @click="cancel">取 消</el-button>
+					<el-button type="primary" @click="submitLoginLoginLimit">确 定</el-button>
+					<el-button @click="cancelLoginLimit">取 消</el-button>
 				</div>
 			</template>
 		</el-dialog>
@@ -377,6 +376,7 @@
 
 	const data = reactive({
 		form: {},
+		longinForm:{},
 		queryParams: {
 			pageNum: 1,
 			pageSize: 10,
@@ -427,7 +427,7 @@
 	const {
 		queryParams,
 		form,
-		rules
+		rules,longinForm 
 	} = toRefs(data);
 
 	/** 通过条件过滤节点  */
@@ -584,12 +584,28 @@
 			roleIds: []
 		};
 		proxy.resetForm("userRef");
+	}; 
+	
+	/** 重置操作表单 */
+	function resetLoginLimit() {
+		longinForm.value = {
+		  userId: null,
+		  lastUpdateTime: null,
+		  loginIp: null,
+		  loginTime: null
+		};
+		proxy.resetForm("expandRef");
 	};
 	/** 取消按钮 */
 	function cancel() {
 		open.value = false;
 		reset();
 	};
+	/** 取消按钮 */
+	function cancelLoginLimit() {
+		login.value = false;
+		resetLoginLimit();
+	};
 	/** 新增按钮操作 */
 	function handleAdd() {
 		reset();
@@ -616,16 +632,15 @@
 			form.password = "";
 		});
 	};
-	
+
 	/** 限制登录操作 */
 	function handleLoginLimit(row) {
 		reset();
 		const userId = row.userId || ids.value;
 		getUser(userId).then(response => {
-			form.value = response.data.expand;
+			longinForm.value = response.data.expand;
 			login.open = true;
 			login.title = "登录限制";
-			form.password = "";
 		});
 	};
 	/** 提交按钮 */