You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
16 KiB
1 lines
16 KiB
{"remainingRequest":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\src\\views\\Employee.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\src\\views\\Employee.vue","mtime":1691398510789},{"path":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1713785856543},{"path":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\node_modules\\babel-loader\\lib\\index.js","mtime":1713785857863},{"path":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1713785856543},{"path":"C:\\Users\\明允\\Desktop\\manage\\springboot\\vue\\node_modules\\vue-loader\\lib\\index.js","mtime":1713785858382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJFbXBsb3llZSIsDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHRhYmxlRGF0YTogW10sDQogICAgICBkZXBhcnRtZW50czogW10sDQogICAgICB0b3RhbDogMCwNCiAgICAgIHBhZ2VOdW06IDEsDQogICAgICBwYWdlU2l6ZTogMTAsDQogICAgICBuYW1lOiAiIiwNCiAgICAgIGZvcm06IHt9LA0KICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLA0KICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLA0KICAgICAgdXNlcjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oInVzZXIiKSA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oInVzZXIiKSkgOiB7fQ0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmxvYWQoKQ0KICAgIHRoaXMucmVxdWVzdC5nZXQoIi9kZXBhcnRtZW50IikudGhlbihyZXMgPT4gew0KICAgICAgdGhpcy5kZXBhcnRtZW50cyA9IHJlcy5kYXRhDQogICAgfSkNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGxvYWQoKSB7DQogICAgICB0aGlzLnJlcXVlc3QuZ2V0KCIvZW1wbG95ZWUvcGFnZSIsIHsNCiAgICAgICAgcGFyYW1zOiB7DQogICAgICAgICAgcGFnZU51bTogdGhpcy5wYWdlTnVtLA0KICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLA0KICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSwNCiAgICAgICAgfQ0KICAgICAgfSkudGhlbihyZXMgPT4gew0KICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnJlY29yZHMNCiAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLnRvdGFsDQogICAgICB9KQ0KICAgIH0sDQogICAgc2F2ZSgpIHsNCiAgICAgIHRoaXMucmVxdWVzdC5wb3N0KCIvZW1wbG95ZWUiLCB0aGlzLmZvcm0pLnRoZW4ocmVzID0+IHsNCiAgICAgICAgaWYgKHJlcy5jb2RlID09PSAnMjAwJykgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5L+d5a2Y5oiQ5YqfIikNCiAgICAgICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2UNCiAgICAgICAgICB0aGlzLmxvYWQoKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuS/neWtmOWksei0pSIpDQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICBoYW5kbGVBZGQoKSB7DQogICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZQ0KICAgICAgdGhpcy5mb3JtID0ge30NCiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgaWYodGhpcy4kcmVmcy5pbWcpIHsNCiAgICAgICAgICAgdGhpcy4kcmVmcy5pbWcuY2xlYXJGaWxlcygpOw0KICAgICAgICAgfQ0KICAgICAgICAgaWYodGhpcy4kcmVmcy5maWxlKSB7DQogICAgICAgICAgdGhpcy4kcmVmcy5maWxlLmNsZWFyRmlsZXMoKTsNCiAgICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICBoYW5kbGVFZGl0KHJvdykgew0KICAgICAgdGhpcy5mb3JtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb3cpKQ0KICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IHRydWUNCiAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgICBpZih0aGlzLiRyZWZzLmltZykgew0KICAgICAgICAgICB0aGlzLiRyZWZzLmltZy5jbGVhckZpbGVzKCk7DQogICAgICAgICB9DQogICAgICAgICBpZih0aGlzLiRyZWZzLmZpbGUpIHsNCiAgICAgICAgICB0aGlzLiRyZWZzLmZpbGUuY2xlYXJGaWxlcygpOw0KICAgICAgICAgfQ0KICAgICAgIH0pDQogICAgfSwNCiAgICBkZWwoaWQpIHsNCiAgICAgIHRoaXMucmVxdWVzdC5kZWxldGUoIi9lbXBsb3llZS8iICsgaWQpLnRoZW4ocmVzID0+IHsNCiAgICAgICAgaWYgKHJlcy5jb2RlID09PSAnMjAwJykgew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIikNCiAgICAgICAgICB0aGlzLmxvYWQoKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuWIoOmZpOWksei0pSIpDQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7DQogICAgICBjb25zb2xlLmxvZyh2YWwpDQogICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsDQogICAgfSwNCiAgICBkZWxCYXRjaCgpIHsNCiAgICAgIGlmICghdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGgpIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigi6K+36YCJ5oup6ZyA6KaB5Yig6Zmk55qE5pWw5o2uIikNCiAgICAgICAgcmV0dXJuDQogICAgICB9DQogICAgICBsZXQgaWRzID0gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5tYXAodiA9PiB2LmlkKSAgLy8gW3t9LCB7fSwge31dID0+IFsxLDIsM10NCiAgICAgIHRoaXMucmVxdWVzdC5wb3N0KCIvZW1wbG95ZWUvZGVsL2JhdGNoIiwgaWRzKS50aGVuKHJlcyA9PiB7DQogICAgICAgIGlmIChyZXMuY29kZSA9PT0gJzIwMCcpIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaJuemHj+WIoOmZpOaIkOWKnyIpDQogICAgICAgICAgdGhpcy5sb2FkKCkNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCLmibnph4/liKDpmaTlpLHotKUiKQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgcmVzZXQoKSB7DQogICAgICB0aGlzLm5hbWUgPSAiIg0KICAgICAgdGhpcy5sb2FkKCkNCiAgICB9LA0KICAgIGhhbmRsZVNpemVDaGFuZ2UocGFnZVNpemUpIHsNCiAgICAgIGNvbnNvbGUubG9nKHBhZ2VTaXplKQ0KICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplDQogICAgICB0aGlzLmxvYWQoKQ0KICAgIH0sDQogICAgaGFuZGxlQ3VycmVudENoYW5nZShwYWdlTnVtKSB7DQogICAgICBjb25zb2xlLmxvZyhwYWdlTnVtKQ0KICAgICAgdGhpcy5wYWdlTnVtID0gcGFnZU51bQ0KICAgICAgdGhpcy5sb2FkKCkNCiAgICB9LA0KICAgIGhhbmRsZUZpbGVVcGxvYWRTdWNjZXNzKHJlcykgew0KICAgICAgdGhpcy5mb3JtLmZpbGUgPSByZXMNCiAgICB9LA0KICAgIGhhbmRsZUltZ1VwbG9hZFN1Y2Nlc3MocmVzKSB7DQogICAgICB0aGlzLmZvcm0uaW1nID0gcmVzDQogICAgfSwNCiAgICBkb3dubG9hZCh1cmwpIHsNCiAgICAgIHdpbmRvdy5vcGVuKHVybCkNCiAgICB9LA0KICAgIGV4cCgpIHsNCiAgICAgIHdpbmRvdy5vcGVuKCJodHRwOi8vbG9jYWxob3N0OjkwOTAvZW1wbG95ZWUvZXhwb3J0IikNCiAgICB9LA0KICAgIGhhbmRsZUV4Y2VsSW1wb3J0U3VjY2VzcygpIHsNCiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5a+85YWl5oiQ5YqfIikNCiAgICAgIHRoaXMubG9hZCgpDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["Employee.vue"],"names":[],"mappings":";AAyHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Employee.vue","sourceRoot":"src/views","sourcesContent":["<template>\r\n <div>\r\n <div style=\"margin: 10px 0\">\r\n <el-input style=\"width: 200px\" placeholder=\"请输入名称\" suffix-icon=\"el-icon-search\" v-model=\"name\"></el-input>\r\n <el-button class=\"ml-5\" type=\"primary\" @click=\"load\">搜索</el-button>\r\n <el-button type=\"warning\" @click=\"reset\">重置</el-button>\r\n </div>\r\n\r\n <div style=\"margin: 10px 0\">\r\n <el-button type=\"primary\" @click=\"handleAdd\">新增 <i class=\"el-icon-circle-plus-outline\"></i></el-button>\r\n <el-popconfirm\r\n class=\"ml-5\"\r\n confirm-button-text='确定'\r\n cancel-button-text='我再想想'\r\n icon=\"el-icon-info\"\r\n icon-color=\"red\"\r\n title=\"您确定批量删除这些数据吗?\"\r\n @confirm=\"delBatch\"\r\n >\r\n <el-button type=\"danger\" slot=\"reference\">批量删除 <i class=\"el-icon-remove-outline\"></i></el-button>\r\n </el-popconfirm>\r\n <!-- <el-upload action=\"http://localhost:9090/employee/import\" :show-file-list=\"false\" accept=\"xlsx\" :on-success=\"handleExcelImportSuccess\" style=\"display: inline-block\">\r\n <el-button type=\"primary\" class=\"ml-5\">导入 <i class=\"el-icon-bottom\"></i></el-button>\r\n </el-upload>\r\n <el-button type=\"primary\" @click=\"exp\" class=\"ml-5\">导出 <i class=\"el-icon-top\"></i></el-button> -->\r\n </div>\r\n\r\n <el-table :data=\"tableData\" border stripe :header-cell-class-name=\"'headerBg'\" @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"55\"></el-table-column>\r\n<!-- <el-table-column prop=\"id\" label=\"ID\" width=\"80\" sortable></el-table-column>-->\r\n <el-table-column prop=\"name\" label=\"员工姓名\"></el-table-column>\r\n<!-- <el-table-column prop=\"departmentId\" label=\"所属部门ID\"></el-table-column>-->\r\n <el-table-column prop=\"departmenter\" label=\"所属部门\"></el-table-column>\r\n <el-table-column prop=\"position\" label=\"职位\"></el-table-column>\r\n <el-table-column prop=\"hireDate\" label=\"入职日期\"></el-table-column>\r\n <el-table-column prop=\"email\" label=\"电子邮件\" width=\"150\"></el-table-column>\r\n <el-table-column prop=\"phoneNumber\" label=\"电话号码\"></el-table-column>\r\n <el-table-column prop=\"address\" label=\"地址\"></el-table-column>\r\n <el-table-column prop=\"createdAt\" label=\"创建时间\" width=\"150\"></el-table-column>\r\n <el-table-column prop=\"updatedAt\" label=\"更新时间\" width=\"150\"></el-table-column>\r\n\r\n <el-table-column label=\"操作\" width=\"180\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-button type=\"success\" @click=\"handleEdit(scope.row)\">编辑 <i class=\"el-icon-edit\"></i></el-button>\r\n <el-popconfirm\r\n class=\"ml-5\"\r\n confirm-button-text='确定'\r\n cancel-button-text='我再想想'\r\n icon=\"el-icon-info\"\r\n icon-color=\"red\"\r\n title=\"您确定删除吗?\"\r\n @confirm=\"del(scope.row.id)\"\r\n >\r\n <el-button type=\"danger\" slot=\"reference\">删除 <i class=\"el-icon-remove-outline\"></i></el-button>\r\n </el-popconfirm>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div style=\"padding: 10px 0\">\r\n <el-pagination\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handleCurrentChange\"\r\n :current-page=\"pageNum\"\r\n :page-sizes=\"[2, 5, 10, 20]\"\r\n :page-size=\"pageSize\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n :total=\"total\">\r\n </el-pagination>\r\n </div>\r\n\r\n <el-dialog title=\"信息\" :visible.sync=\"dialogFormVisible\" width=\"40%\" :close-on-click-modal=\"false\">\r\n <el-form label-width=\"120px\" size=\"small\" style=\"width: 80%; margin: 0 auto\">\r\n <el-form-item label=\"员工姓名\">\r\n <el-input v-model=\"form.name\" autocomplete=\"off\"></el-input>\r\n </el-form-item>\r\n<!-- <el-form-item label=\"所属部门ID\">-->\r\n<!-- <el-select clearable v-model=\"form.departmentId\" placeholder=\"请选择\" style=\"width: 100%\">-->\r\n<!-- <el-option v-for=\"item in departments\" :key=\"item.id\" :label=\"item.id\" :value=\"item.id\"></el-option>-->\r\n<!-- </el-select>-->\r\n<!-- </el-form-item>-->\r\n <el-form-item label=\"所属部门\">\r\n <el-select clearable v-model=\"form.departmenter\" placeholder=\"请选择\" style=\"width: 100%\">\r\n <el-option v-for=\"item in departments\" :key=\"item.id\" :label=\"item.name\" :value=\"item.name\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"职位\">\r\n <el-input v-model=\"form.position\" autocomplete=\"off\"></el-input>\r\n </el-form-item>\r\n<!-- <el-form-item label=\"入职日期\">-->\r\n<!-- <el-date-picker v-model=\"form.hireDate\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择日期\"></el-date-picker>-->\r\n<!-- </el-form-item>-->\r\n <el-form-item label=\"入职日期\">\r\n <el-date-picker v-model=\"form.hireDate\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择日期\"></el-date-picker>\r\n </el-form-item>\r\n\r\n <el-form-item label=\"电子邮件\">\r\n <el-input v-model=\"form.email\" autocomplete=\"off\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"电话号码\">\r\n <el-input v-model=\"form.phoneNumber\" autocomplete=\"off\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"地址\">\r\n <el-input v-model=\"form.address\" autocomplete=\"off\"></el-input>\r\n </el-form-item>\r\n<!-- <el-form-item label=\"创建时间\">-->\r\n<!-- <el-input v-model=\"form.createdAt\" autocomplete=\"off\"></el-input>-->\r\n<!-- </el-form-item>-->\r\n<!-- <el-form-item label=\"更新时间\">-->\r\n<!-- <el-input v-model=\"form.updatedAt\" autocomplete=\"off\"></el-input>-->\r\n<!-- </el-form-item>-->\r\n\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"dialogFormVisible = false\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"save\">确 定</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"Employee\",\r\n data() {\r\n return {\r\n tableData: [],\r\n departments: [],\r\n total: 0,\r\n pageNum: 1,\r\n pageSize: 10,\r\n name: \"\",\r\n form: {},\r\n dialogFormVisible: false,\r\n multipleSelection: [],\r\n user: localStorage.getItem(\"user\") ? JSON.parse(localStorage.getItem(\"user\")) : {}\r\n }\r\n },\r\n created() {\r\n this.load()\r\n this.request.get(\"/department\").then(res => {\r\n this.departments = res.data\r\n })\r\n },\r\n methods: {\r\n load() {\r\n this.request.get(\"/employee/page\", {\r\n params: {\r\n pageNum: this.pageNum,\r\n pageSize: this.pageSize,\r\n name: this.name,\r\n }\r\n }).then(res => {\r\n this.tableData = res.data.records\r\n this.total = res.data.total\r\n })\r\n },\r\n save() {\r\n this.request.post(\"/employee\", this.form).then(res => {\r\n if (res.code === '200') {\r\n this.$message.success(\"保存成功\")\r\n this.dialogFormVisible = false\r\n this.load()\r\n } else {\r\n this.$message.error(\"保存失败\")\r\n }\r\n })\r\n },\r\n handleAdd() {\r\n this.dialogFormVisible = true\r\n this.form = {}\r\n this.$nextTick(() => {\r\n if(this.$refs.img) {\r\n this.$refs.img.clearFiles();\r\n }\r\n if(this.$refs.file) {\r\n this.$refs.file.clearFiles();\r\n }\r\n })\r\n },\r\n handleEdit(row) {\r\n this.form = JSON.parse(JSON.stringify(row))\r\n this.dialogFormVisible = true\r\n this.$nextTick(() => {\r\n if(this.$refs.img) {\r\n this.$refs.img.clearFiles();\r\n }\r\n if(this.$refs.file) {\r\n this.$refs.file.clearFiles();\r\n }\r\n })\r\n },\r\n del(id) {\r\n this.request.delete(\"/employee/\" + id).then(res => {\r\n if (res.code === '200') {\r\n this.$message.success(\"删除成功\")\r\n this.load()\r\n } else {\r\n this.$message.error(\"删除失败\")\r\n }\r\n })\r\n },\r\n handleSelectionChange(val) {\r\n console.log(val)\r\n this.multipleSelection = val\r\n },\r\n delBatch() {\r\n if (!this.multipleSelection.length) {\r\n this.$message.error(\"请选择需要删除的数据\")\r\n return\r\n }\r\n let ids = this.multipleSelection.map(v => v.id) // [{}, {}, {}] => [1,2,3]\r\n this.request.post(\"/employee/del/batch\", ids).then(res => {\r\n if (res.code === '200') {\r\n this.$message.success(\"批量删除成功\")\r\n this.load()\r\n } else {\r\n this.$message.error(\"批量删除失败\")\r\n }\r\n })\r\n },\r\n reset() {\r\n this.name = \"\"\r\n this.load()\r\n },\r\n handleSizeChange(pageSize) {\r\n console.log(pageSize)\r\n this.pageSize = pageSize\r\n this.load()\r\n },\r\n handleCurrentChange(pageNum) {\r\n console.log(pageNum)\r\n this.pageNum = pageNum\r\n this.load()\r\n },\r\n handleFileUploadSuccess(res) {\r\n this.form.file = res\r\n },\r\n handleImgUploadSuccess(res) {\r\n this.form.img = res\r\n },\r\n download(url) {\r\n window.open(url)\r\n },\r\n exp() {\r\n window.open(\"http://localhost:9090/employee/export\")\r\n },\r\n handleExcelImportSuccess() {\r\n this.$message.success(\"导入成功\")\r\n this.load()\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n\r\n<style>\r\n.headerBg {\r\n background: #eee!important;\r\n}\r\n</style>\r\n"]}]} |