diff --git a/src/components/baseSelection/index.vue b/src/components/baseSelection/index.vue
index 0f9effd..22bca04 100644
--- a/src/components/baseSelection/index.vue
+++ b/src/components/baseSelection/index.vue
@@ -1,11 +1,56 @@
-
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 860014f..e500236 100644
--- a/src/main.js
+++ b/src/main.js
@@ -39,6 +39,7 @@ import Editor from "@/components/Editor"
// drawer弹窗组件
import LeftDrawer from "@/components/LeftDrawer"
import titleDivider from "@/components/titleDivider"
+import baseSelection from "@/components/baseSelection"
// 文件上传组件
import FileUpload from "@/components/FileUpload"
// 图片上传组件
@@ -86,6 +87,7 @@ app.component('RightToolbar', RightToolbar)
app.component('Editor', Editor)
app.component('LeftDrawer', LeftDrawer)
app.component('titleDivider', titleDivider)
+app.component('baseSelection', baseSelection)
app.use(VueAMap)
app.use(router)
app.use(store)
diff --git a/src/views/index.vue b/src/views/index.vue
index 541c85f..48c14ef 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -548,6 +548,7 @@ function goTarget(url) {
height: 250px;
}
.home {
+ padding-top: 0;
blockquote {
padding: 10px 20px;
margin: 0 0 20px;
diff --git a/src/views/system/base/baseTable.vue b/src/views/system/base/baseTable.vue
index 87ae2b0..5fc41b1 100644
--- a/src/views/system/base/baseTable.vue
+++ b/src/views/system/base/baseTable.vue
@@ -1,13 +1,582 @@
-
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+ 导入
+
+
+ 导出
+
+
+
-
-
- 地块列表
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+ 是否更新已经存在的用户数据
+
+
仅允许导入xls、xlsx格式文件。
+
下载模板
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+const router = useRouter();
+const { proxy } = getCurrentInstance();
+const { sys_normal_disable, sys_user_sex } = proxy.useDict("sys_normal_disable", "sys_user_sex");
+
+const userList = ref([]);
+const open = ref(false);
+const loading = ref(false);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+const dateRange = ref([]);
+const deptName = ref("");
+const deptOptions = ref(undefined);
+const initPassword = ref(undefined);
+const postOptions = ref([]);
+const roleOptions = ref([]);
+/*** 用户导入参数 */
+const upload = reactive({
+ // 是否显示弹出层(用户导入)
+ open: false,
+ // 弹出层标题(用户导入)
+ title: "",
+ // 是否禁用上传
+ isUploading: false,
+ // 是否更新已经存在的用户数据
+ updateSupport: 0,
+ // 设置上传的请求头部
+ headers: { Authorization: "Bearer " + getToken() },
+ // 上传的地址
+ url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData"
+});
+// 列显隐信息
+const columns = ref([
+ { key: 0, label: `用户编号`, visible: true },
+ { key: 1, label: `用户名称`, visible: true },
+ { key: 2, label: `用户昵称`, visible: true },
+ { key: 3, label: `部门`, visible: true },
+ { key: 4, label: `手机号码`, visible: true },
+ { key: 5, label: `状态`, visible: true },
+ { key: 6, label: `创建时间`, visible: true }
+]);
+
+const data = reactive({
+ form: {},
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ userName: undefined,
+ phonenumber: undefined,
+ status: undefined,
+ deptId: undefined
+ },
+ rules: {
+ userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
+ nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
+ password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }],
+ email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
+ phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
+ }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 通过条件过滤节点 */
+const filterNode = (value, data) => {
+ if (!value) return true;
+ return data.label.indexOf(value) !== -1;
+};
+/** 根据名称筛选部门树 */
+watch(deptName, val => {
+ proxy.$refs["deptTreeRef"].filter(val);
+});
+/** 查询用户列表 */
+function getList() {
+ loading.value = true;
+ listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
+ loading.value = false;
+ userList.value = res.rows;
+ total.value = res.total;
+ });
+};
+/** 节点单击事件 */
+function handleNodeClick(data) {
+ queryParams.value.deptId = data.id;
+ handleQuery();
+};
+/** 搜索按钮操作 */
+function handleQuery() {
+ queryParams.value.pageNum = 1;
+ getList();
+};
+/** 重置按钮操作 */
+function resetQuery() {
+ dateRange.value = [];
+ proxy.resetForm("queryRef");
+ queryParams.value.deptId = undefined;
+ proxy.$refs.deptTreeRef.setCurrentKey(null);
+ handleQuery();
+};
+/** 删除按钮操作 */
+function handleDelete(row) {
+ const userIds = row.userId || ids.value;
+ proxy.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
+ return delUser(userIds);
+ }).then(() => {
+ getList();
+ proxy.$modal.msgSuccess("删除成功");
+ }).catch(() => {});
+};
+/** 导出按钮操作 */
+function handleExport() {
+ proxy.download("system/user/export", {
+ ...queryParams.value,
+ },`user_${new Date().getTime()}.xlsx`);
+};
+/** 用户状态修改 */
+function handleStatusChange(row) {
+ let text = row.status === "0" ? "启用" : "停用";
+ proxy.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
+ return changeUserStatus(row.userId, row.status);
+ }).then(() => {
+ proxy.$modal.msgSuccess(text + "成功");
+ }).catch(function () {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+};
+/** 更多操作 */
+function handleCommand(command, row) {
+ switch (command) {
+ case "handleResetPwd":
+ handleResetPwd(row);
+ break;
+ case "handleAuthRole":
+ handleAuthRole(row);
+ break;
+ default:
+ break;
+ }
+};
+/** 跳转角色分配 */
+function handleAuthRole(row) {
+ const userId = row.userId;
+ router.push("/system/user-auth/role/" + userId);
+};
+/** 重置密码按钮操作 */
+function handleResetPwd(row) {
+ proxy.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ closeOnClickModal: false,
+ inputPattern: /^.{5,20}$/,
+ inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
+ inputValidator: (value) => {
+ if (/<|>|"|'|\||\\/.test(value)) {
+ return "不能包含非法字符:< > \" ' \\\ |"
+ }
+ },
+ }).then(({ value }) => {
+ resetUserPwd(row.userId, value).then(response => {
+ proxy.$modal.msgSuccess("修改成功,新密码是:" + value);
+ });
+ }).catch(() => {});
+};
+/** 选择条数 */
+function handleSelectionChange(selection) {
+ ids.value = selection.map(item => item.userId);
+ single.value = selection.length != 1;
+ multiple.value = !selection.length;
+};
+/** 导入按钮操作 */
+function handleImport() {
+ upload.title = "用户导入";
+ upload.open = true;
+};
+/** 下载模板操作 */
+function importTemplate() {
+ proxy.download("system/user/importTemplate", {
+ }, `user_template_${new Date().getTime()}.xlsx`);
+};
+/**文件上传中处理 */
+const handleFileUploadProgress = (event, file, fileList) => {
+ upload.isUploading = true;
+};
+/** 文件上传成功处理 */
+const handleFileSuccess = (response, file, fileList) => {
+ upload.open = false;
+ upload.isUploading = false;
+ proxy.$refs["uploadRef"].handleRemove(file);
+ proxy.$alert("
" + response.msg + "
", "导入结果", { dangerouslyUseHTMLString: true });
+ getList();
+};
+/** 提交上传文件 */
+function submitFileForm() {
+ proxy.$refs["uploadRef"].submit();
+};
+/** 重置操作表单 */
+function reset() {
+ form.value = {
+ userId: undefined,
+ deptId: undefined,
+ userName: undefined,
+ nickName: undefined,
+ password: undefined,
+ phonenumber: undefined,
+ email: undefined,
+ sex: undefined,
+ status: "0",
+ remark: undefined,
+ postIds: [],
+ roleIds: []
+ };
+ proxy.resetForm("userRef");
+};
+/** 取消按钮 */
+function cancel() {
+ open.value = false;
+ reset();
+};
+/** 新增按钮操作 */
+function handleAdd() {
+ reset();
+ getUser().then(response => {
+ postOptions.value = response.posts;
+ roleOptions.value = response.roles;
+ open.value = true;
+ title.value = "添加用户";
+ form.value.password = initPassword.value;
+ });
+};
+/** 修改按钮操作 */
+function handleUpdate(row) {
+ reset();
+ const userId = row.userId || ids.value;
+ getUser(userId).then(response => {
+ form.value = response.data;
+ postOptions.value = response.posts;
+ roleOptions.value = response.roles;
+ form.value.postIds = response.postIds;
+ form.value.roleIds = response.roleIds;
+ open.value = true;
+ title.value = "修改用户";
+ form.password = "";
+ });
+};
+/** 提交按钮 */
+function submitForm() {
+ proxy.$refs["userRef"].validate(valid => {
+ if (valid) {
+ if (form.value.userId != undefined) {
+ updateUser(form.value).then(response => {
+ proxy.$modal.msgSuccess("修改成功");
+ open.value = false;
+ getList();
+ });
+ } else {
+ addUser(form.value).then(response => {
+ proxy.$modal.msgSuccess("新增成功");
+ open.value = false;
+ getList();
+ });
+ }
+ }
+ });
+};
+
diff --git a/src/views/system/base/massifForm.vue b/src/views/system/base/massifForm.vue
index ece8072..b5a1dfa 100644
--- a/src/views/system/base/massifForm.vue
+++ b/src/views/system/base/massifForm.vue
@@ -201,7 +201,7 @@ defineExpose({
文件上传
-
+
添加坐标点
diff --git a/src/views/system/base/massifMap.vue b/src/views/system/base/massifMap.vue
index 3b29248..6185d98 100644
--- a/src/views/system/base/massifMap.vue
+++ b/src/views/system/base/massifMap.vue
@@ -453,7 +453,15 @@ const submitMassif = () => {
return
}
}
- polygonList.push({path: polygonTemp.value, edit: false})
+ massifFormRef.value.toAdd({
+ coordinateList:polygonTemp.value.map(item => {
+ return {
+ longitude: item[0],
+ latitude: item[1]
+ }
+ })
+ })
+ // polygonList.push({path: polygonTemp.value, edit: false})
polygonTemp.value = undefined
createdMouse.value = false
protract.value = false
@@ -634,12 +642,11 @@ const toViewMassif = (row) => {
+ :label="{content:`${control.plantLabel?plant.title:''}`,offset:[0,0]}">