Files
education/frontend/node_modules/.cache/vue-loader/bcae1166695115bfed9562b245ca975c.json
T

1 line
22 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\office\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\office\\index.vue","mtime":1787650713742},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBsaXN0T2ZmaWNlLCBhZGRPZmZpY2UsIHVwZGF0ZU9mZmljZSwgZGlzYWJsZU9mZmljZSB9IGZyb20gIkAvYXBpL3RlYWNoT2ZmaWNlL29mZmljZSINCmltcG9ydCB7IGdldFRva2VuIH0gZnJvbSAnQC91dGlscy9hdXRoJw0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJPZmZpY2UiLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICAvLyDpga7nvanlsYINCiAgICAgIGxvYWRpbmc6IHRydWUsDQogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YNCiAgICAgIHNob3dTZWFyY2g6IHRydWUsDQogICAgICAvLyDooajmoLzpq5jluqYNCiAgICAgIHRhYmxlSGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQgLSAyODAsDQogICAgICAvLyDmgLvmnaHmlbANCiAgICAgIHRvdGFsOiAwLA0KICAgICAgLy8g5pWZ56CU5a6k5YiX6KGo5pWw5o2uDQogICAgICBvZmZpY2VMaXN0OiBbXSwNCiAgICAgIC8vIOW8ueWHuuWxguagh+mimA0KICAgICAgdGl0bGU6ICIiLA0KICAgICAgLy8g5piv5ZCm5pi+56S65paw5aKeL+e8lui+keW8ueWHuuWxgg0KICAgICAgb3BlbjogZmFsc2UsDQogICAgICAvLyDmmK/lkKbmlrDlop7vvIhmYWxzZSDkuLrnvJbovpHvvIkNCiAgICAgIGlzQWRkOiB0cnVlLA0KICAgICAgLy8g5piv5ZCm5pi+56S65a+85YWl5by55Ye65bGCDQogICAgICBpbXBvcnRPcGVuOiBmYWxzZSwNCiAgICAgIC8vIOafpeivouWPguaVsA0KICAgICAgcXVlcnlQYXJhbXM6IHsNCiAgICAgICAgcGFnZU51bTogMSwNCiAgICAgICAgcGFnZVNpemU6IDIwLA0KICAgICAgICBqeXNkaDogdW5kZWZpbmVkLA0KICAgICAgICBqeXNtYzogdW5kZWZpbmVkLA0KICAgICAgICBieDogdW5kZWZpbmVkDQogICAgICB9LA0KICAgICAgLy8g6KGo5Y2V5Y+C5pWwDQogICAgICBmb3JtOiB7fSwNCiAgICAgIC8vIOihqOWNleagoemqjA0KICAgICAgcnVsZXM6IHsNCiAgICAgICAganlzZGg6IFsNCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5pWZ56CU5a6k5Luj5Y+35LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH0NCiAgICAgICAgXSwNCiAgICAgICAganlzbWM6IFsNCiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5pWZ56CU5a6k5ZCN56ew5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH0NCiAgICAgICAgXQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBpbXBvcnRVcmwoKSB7DQogICAgICByZXR1cm4gcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICcvanlzL29mZmljZS9pbXBvcnQnDQogICAgfSwNCiAgICB1cGxvYWRIZWFkZXJzKCkgew0KICAgICAgcmV0dXJuIHsgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgZ2V0VG9rZW4oKSB9DQogICAgfQ0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHRoaXMuZ2V0TGlzdCgpDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvKiog5p+l6K+i5pWZ56CU5a6k5YiX6KGoICovDQogICAgZ2V0TGlzdCgpIHsNCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWUNCiAgICAgIGxpc3RPZmZpY2UodGhpcy5xdWVyeVBhcmFtcykudGhlbihyZXNwb25zZSA9PiB7DQogICAgICAgIC8vIOWQjuerr+i/lOWbniBNeUJhdGlzLVBsdXMg5YiG6aG157uT5p6E77yaZGF0YS5yZWNvcmRzIC8gZGF0YS50b3RhbA0KICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YSB8fCB7fQ0KICAgICAgICB0aGlzLm9mZmljZUxpc3QgPSBkYXRhLnJlY29yZHMgfHwgW10NCiAgICAgICAgdGhpcy50b3RhbCA9IGRhdGEudG90YWwgfHwgMA0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICB0aGlzLm9mZmljZUxpc3QgPSBbXQ0KICAgICAgICB0aGlzLnRvdGFsID0gMA0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkNCiAgICB9LA0KICAgIC8qKiDmn6Xor6LmjInpkq4gKi8NCiAgICBoYW5kbGVRdWVyeSgpIHsNCiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDENCiAgICAgIHRoaXMuZ2V0TGlzdCgpDQogICAgfSwNCiAgICAvKiog6YeN572u5oyJ6ZKuICovDQogICAgcmVzZXRRdWVyeSgpIHsNCiAgICAgIHRoaXMucmVzZXRGb3JtKCJxdWVyeUZvcm0iKQ0KICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpDQogICAgfSwNCiAgICAvKiog5paw5aKe5oyJ6ZKuICovDQogICAgaGFuZGxlQWRkKCkgew0KICAgICAgdGhpcy5yZXNldCgpDQogICAgICB0aGlzLmlzQWRkID0gdHJ1ZQ0KICAgICAgdGhpcy5vcGVuID0gdHJ1ZQ0KICAgICAgdGhpcy50aXRsZSA9ICLmlrDlop7mlZnnoJTlrqQiDQogICAgfSwNCiAgICAvKiog57yW6L6R5oyJ6ZKuICovDQogICAgaGFuZGxlVXBkYXRlKHJvdykgew0KICAgICAgdGhpcy5yZXNldCgpDQogICAgICB0aGlzLmlzQWRkID0gZmFsc2UNCiAgICAgIC8vIOe8lui+ke+8mmp5c2RoIOW/heS8oA0KICAgICAgdGhpcy5mb3JtID0gew0KICAgICAgICBqeXNkaDogcm93Lmp5c2RoLA0KICAgICAgICBqeXNtYzogcm93Lmp5c21jLA0KICAgICAgICBqYzogcm93LmpjLA0KICAgICAgICBieDogcm93LmJ4LA0KICAgICAgICB4aDogcm93LnhoLA0KICAgICAgICBiejogcm93LmJ6DQogICAgICB9DQogICAgICB0aGlzLm9wZW4gPSB0cnVlDQogICAgICB0aGlzLnRpdGxlID0gIue8lui+keaVmeeglOWupCINCiAgICB9LA0KICAgIC8qKiDlgZznlKjmjInpkq4gKi8NCiAgICBoYW5kbGVEaXNhYmxlKHJvdykgew0KICAgICAgY29uc3QganlzZGggPSByb3cuanlzZGgNCiAgICAgIHRoaXMuJG1vZGFsLmNvbmZpcm0oJ+ehruiupOWBnOeUqOaVmeeglOWupOOAkCcgKyByb3cuanlzbWMgKyAn44CR5ZCX77yfJykudGhlbigoKSA9PiB7DQogICAgICAgIHJldHVybiBkaXNhYmxlT2ZmaWNlKGp5c2RoKQ0KICAgICAgfSkudGhlbigoKSA9PiB7DQogICAgICAgIHRoaXMuZ2V0TGlzdCgpDQogICAgICAgIHRoaXMuJG1vZGFsLm1zZ1N1Y2Nlc3MoIuWBnOeUqOaIkOWKnyIpDQogICAgICB9KS5jYXRjaCgoKSA9PiB7fSkNCiAgICB9LA0KICAgIC8qKiDmj5DkuqTooajljZUgKi8NCiAgICBzdWJtaXRGb3JtKCkgew0KICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKHZhbGlkID0+IHsNCiAgICAgICAgaWYgKHZhbGlkKSB7DQogICAgICAgICAgaWYgKHRoaXMuaXNBZGQpIHsNCiAgICAgICAgICAgIGFkZE9mZmljZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICAgICAgICB0aGlzLiRtb2RhbC5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKQ0KICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZQ0KICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKQ0KICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge30pDQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHVwZGF0ZU9mZmljZSh0aGlzLmZvcm0pLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICAgICAgICB0aGlzLiRtb2RhbC5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKQ0KICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZQ0KICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKQ0KICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge30pDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgLyoqIOmHjee9ruihqOWNlSAqLw0KICAgIHJlc2V0KCkgew0KICAgICAgdGhpcy5mb3JtID0gew0KICAgICAgICBqeXNkaDogdW5kZWZpbmVkLA0KICAgICAgICBqeXNtYzogdW5kZWZpbmVkLA0KICAgICAgICBqYzogdW5kZWZpbmVkLA0KICAgICAgICBieDogdW5kZWZpbmVkLA0KICAgICAgICB4aDogdW5kZWZpbmVkLA0KICAgICAgICBiejogdW5kZWZpbmVkDQogICAgICB9DQogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybSIpDQogICAgfSwNCiAgICAvKiog5Y+W5raI5oyJ6ZKuICovDQogICAgY2FuY2VsKCkgew0KICAgICAgdGhpcy5vcGVuID0gZmFsc2UNCiAgICAgIHRoaXMucmVzZXQoKQ0KICAgIH0sDQogICAgLyoqIOaJk+W8gOWvvOWFpeWvueivneahhiAqLw0KICAgIG9wZW5JbXBvcnQoKSB7DQogICAgICB0aGlzLmltcG9ydE9wZW4gPSB0cnVlDQogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgIGlmICh0aGlzLiRyZWZzLnVwbG9hZFJlZikgew0KICAgICAgICAgIHRoaXMuJHJlZnMudXBsb2FkUmVmLmNsZWFyRmlsZXMoKQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgIH0sDQogICAgLyoqIOWvvOWFpeWJjeagoemqjOaWh+S7tuagvOW8jyAqLw0KICAgIGJlZm9yZUltcG9ydChmaWxlKSB7DQogICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkNCiAgICAgIGlmICghbmFtZS5lbmRzV2l0aCgnLnhscycpICYmICFuYW1lLmVuZHNXaXRoKCcueGxzeCcpKSB7DQogICAgICAgIHRoaXMuJG1vZGFsLm1zZ0Vycm9yKCfku4XmlK/mjIEgeGxz44CBeGxzeCDmoLzlvI/mlofku7YnKQ0KICAgICAgICByZXR1cm4gZmFsc2UNCiAgICAgIH0NCiAgICAgIHJldHVybiB0cnVlDQogICAgfSwNCiAgICAvKiog5o+Q5Lqk5a+85YWlICovDQogICAgc3VibWl0SW1wb3J0KCkgew0KICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLiRyZWZzLnVwbG9hZFJlZi51cGxvYWRGaWxlcw0KICAgICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHsNCiAgICAgICAgdGhpcy4kbW9kYWwubXNnRXJyb3IoJ+ivt+mAieaLqeimgeWvvOWFpeeahOaWh+S7ticpDQogICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgdGhpcy4kcmVmcy51cGxvYWRSZWYuc3VibWl0KCkNCiAgICB9LA0KICAgIC8qKiDlr7zlhaXmiJDlip8gKi8NCiAgICBoYW5kbGVJbXBvcnRTdWNjZXNzKHJlc3BvbnNlKSB7DQogICAgICB0aGlzLmltcG9ydE9wZW4gPSBmYWxzZQ0KICAgICAgdGhpcy4kYWxlcnQoIjxkaXYgc3R5bGU9J292ZXJmbG93OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47bWF4LWhlaWdodDo3MHZoO3BhZGRpbmc6MTBweCAyMHB4IDA7Jz4iICsgcmVzcG9uc2UubXNnICsgJzwvZGl2PicsICflr7zlhaXnu5PmnpwnLCB7IGRhbmdlcm91c2x5VXNlSFRNTFN0cmluZzogdHJ1ZSB9KQ0KICAgICAgdGhpcy5nZXRMaXN0KCkNCiAgICB9LA0KICAgIC8qKiDlr7zlhaXlpLHotKUgKi8NCiAgICBoYW5kbGVJbXBvcnRFcnJvcigpIHsNCiAgICAgIHRoaXMuJG1vZGFsLm1zZ0Vycm9yKCflr7zlhaXlpLHotKXvvIzor7fnqI3lkI7ph43or5UnKQ0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2GA;AACA;;AAEA;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;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":"index.vue","sourceRoot":"src/views/teachOffice/office","sourcesContent":["<template>\r\n <div class=\"app-container teach-office\">\r\n <!-- 查询条件区域 -->\\r\\n <el-form :model=\"queryParams\" ref=\"queryForm\" size=\"small\" :inline=\"true\" label-width=\"88px\" v-show=\"showSearch\">\\r\\n <el-form-item label=\"教研室代号\" prop=\"jysdh\">\\r\\n <el-input\\r\\n v-model=\"queryParams.jysdh\"\\r\\n placeholder=\"请输入教研室代号\"\\r\\n clearable\\r\\n style=\"width: 160px\"\\r\\n @keyup.enter.native=\"handleQuery\"\\r\\n />\\r\\n </el-form-item>\\r\\n <el-form-item label=\"教研室名称\" prop=\"jysmc\">\\r\\n <el-input\\r\\n v-model=\"queryParams.jysmc\"\\r\\n placeholder=\"请输入教研室名称(模糊)\"\\r\\n clearable\\r\\n style=\"width: 180px\"\\r\\n @keyup.enter.native=\"handleQuery\"\\r\\n />\\r\\n </el-form-item>\\r\\n <el-form-item label=\"部系\" prop=\"bx\">\\r\\n <el-input\\r\\n v-model=\"queryParams.bx\"\\r\\n placeholder=\"请输入部系\"\\r\\n clearable\\r\\n style=\"width: 160px\"\\r\\n @keyup.enter.native=\"handleQuery\"\\r\\n />\\r\\n </el-form-item>\\r\\n <el-form-item label=\"状态\" prop=\"ty\">\\r\\n <el-select v-model=\"queryParams.ty\" placeholder=\"全部\" clearable style=\"width: 100px\">\\r\\n <el-option label=\"启用\" :value=\"0\" />\\r\\n <el-option label=\"停用\" :value=\"1\" />\\r\\n </el-select>\\r\\n </el-form-item>\\r\\n <el-form-item>\\r\\n <el-button type=\"primary\" icon=\"el-icon-search\" size=\"mini\" @click=\"handleQuery\">查询</el-button>\\r\\n <el-button icon=\"el-icon-refresh\" size=\"mini\" @click=\"resetQuery\">重置</el-button>\\r\\n </el-form-item>\\r\\n </el-form>\r\n\r\n <!-- 操作按钮区域 -->\r\n <el-row :gutter=\"10\" class=\"mb8\">\r\n <el-col :span=\"1.5\">\r\n <el-button type=\"primary\" plain icon=\"el-icon-plus\" size=\"mini\" @click=\"handleAdd\">新增</el-button>\r\n </el-col>\r\n <el-col :span=\"1.5\">\r\n <el-button type=\"info\" plain icon=\"el-icon-upload2\" size=\"mini\" @click=\"openImport\">导入</el-button>\r\n </el-col>\r\n <right-toolbar :showSearch.sync=\"showSearch\" @queryTable=\"getList\"></right-toolbar>\r\n </el-row>\r\n\r\n <!-- 数据列表区域 -->\r\n <el-table v-loading=\"loading\" :data=\"officeList\" border :height=\"tableHeight\">\r\n <el-table-column label=\"教研室代号\" align=\"center\" prop=\"jysdh\" min-width=\"110\" />\r\n <el-table-column label=\"教研室名称\" align=\"center\" prop=\"jysmc\" min-width=\"160\" :show-overflow-tooltip=\"true\" />\r\n <el-table-column label=\"简称\" align=\"center\" prop=\"jc\" min-width=\"90\" />\r\n <el-table-column label=\"部系\" align=\"center\" prop=\"bx\" min-width=\"100\" />\r\n <el-table-column label=\"序号\" align=\"center\" prop=\"xh\" min-width=\"80\" />\r\n <el-table-column label=\"机关性质\" align=\"center\" min-width=\"90\">\r\n <template slot-scope=\"scope\">\r\n <el-tag :type=\"scope.row.jgxz ? 'primary' : 'info'\" size=\"mini\">{{ scope.row.jgxz ? '是' : '否' }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"备注\" align=\"center\" prop=\"bz\" min-width=\"120\" :show-overflow-tooltip=\"true\" />\r\n <el-table-column label=\"操作\" align=\"center\" min-width=\"140\" class-name=\"small-padding fixed-width\">\r\n <template slot-scope=\"scope\">\r\n <el-button size=\"mini\" type=\"text\" icon=\"el-icon-edit\" @click=\"handleUpdate(scope.row)\">编辑</el-button>\r\n <el-button\r\n size=\"mini\"\r\n type=\"text\"\r\n icon=\"el-icon-circle-close\"\r\n style=\"color: #f56c6c\"\r\n :disabled=\"scope.row.ty === 1\"\r\n @click=\"handleDisable(scope.row)\"\r\n >停用</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <pagination\r\n v-show=\"total > 0\"\r\n :total=\"total\"\r\n :page.sync=\"queryParams.pageNum\"\r\n :limit.sync=\"queryParams.pageSize\"\r\n @pagination=\"getList\"\r\n />\r\n\r\n <!-- 新增/编辑对话框 -->\r\n <el-dialog :title=\"title\" :visible.sync=\"open\" width=\"560px\" append-to-body>\r\n <el-form ref=\"form\" :model=\"form\" :rules=\"rules\" label-width=\"100px\">\r\n <el-form-item label=\"教研室代号\" prop=\"jysdh\">\r\n <el-input v-model=\"form.jysdh\" placeholder=\"请输入教研室代号\" :disabled=\"!isAdd\" maxlength=\"20\" />\r\n </el-form-item>\r\n <el-form-item label=\"教研室名称\" prop=\"jysmc\">\r\n <el-input v-model=\"form.jysmc\" placeholder=\"请输入教研室名称\" maxlength=\"50\" />\r\n </el-form-item>\r\n <el-form-item label=\"简称\" prop=\"jc\">\r\n <el-input v-model=\"form.jc\" placeholder=\"请输入简称\" maxlength=\"20\" />\r\n </el-form-item>\r\n <el-form-item label=\"部系\" prop=\"bx\">\r\n <el-input v-model=\"form.bx\" placeholder=\"请输入部系\" maxlength=\"30\" />\r\n </el-form-item>\r\n <el-form-item label=\"序号\" prop=\"xh\">\r\n <el-input v-model=\"form.xh\" placeholder=\"请输入序号\" maxlength=\"10\" />\r\n </el-form-item>\r\n <el-form-item label=\"备注\" prop=\"bz\">\r\n <el-input v-model=\"form.bz\" type=\"textarea\" placeholder=\"请输入备注\" :rows=\"3\" maxlength=\"200\" show-word-limit />\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"submitForm\">确 定</el-button>\r\n <el-button @click=\"cancel\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- 导入对话框 -->\r\n <el-dialog title=\"教研室数据导入\" :visible.sync=\"importOpen\" width=\"420px\" append-to-body>\r\n <el-upload\r\n ref=\"uploadRef\"\r\n :action=\"importUrl\"\r\n :headers=\"uploadHeaders\"\r\n :on-success=\"handleImportSuccess\"\r\n :on-error=\"handleImportError\"\r\n :limit=\"1\"\r\n :before-upload=\"beforeImport\"\r\n accept=\".xls, .xlsx\"\r\n drag\r\n >\r\n <i class=\"el-icon-upload\"></i>\r\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\r\n <div class=\"el-upload__tip text-center\" slot=\"tip\">\r\n <span>仅允许导入 xls、xlsx 格式文件。</span>\r\n </div>\r\n </el-upload>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"submitImport\">确 定</el-button>\r\n <el-button @click=\"importOpen = false\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { listOffice, addOffice, updateOffice, disableOffice } from \"@/api/teachOffice/office\"\r\nimport { getToken } from '@/utils/auth'\r\n\r\nexport default {\r\n name: \"Office\",\r\n data() {\r\n return {\r\n // 遮罩层\r\n loading: true,\r\n // 显示搜索条件\r\n showSearch: true,\r\n // 表格高度\r\n tableHeight: window.innerHeight - 280,\r\n // 总条数\r\n total: 0,\r\n // 教研室列表数据\r\n officeList: [],\r\n // 弹出层标题\r\n title: \"\",\r\n // 是否显示新增/编辑弹出层\r\n open: false,\r\n // 是否新增(false 为编辑)\r\n isAdd: true,\r\n // 是否显示导入弹出层\r\n importOpen: false,\r\n // 查询参数\r\n queryParams: {\r\n pageNum: 1,\r\n pageSize: 20,\r\n jysdh: undefined,\r\n jysmc: undefined,\r\n bx: undefined\r\n },\r\n // 表单参数\r\n form: {},\r\n // 表单校验\r\n rules: {\r\n jysdh: [\r\n { required: true, message: \"教研室代号不能为空\", trigger: \"blur\" }\r\n ],\r\n jysmc: [\r\n { required: true, message: \"教研室名称不能为空\", trigger: \"blur\" }\r\n ]\r\n }\r\n }\r\n },\r\n computed: {\r\n importUrl() {\r\n return process.env.VUE_APP_BASE_API + '/jys/office/import'\r\n },\r\n uploadHeaders() {\r\n return { Authorization: 'Bearer ' + getToken() }\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n },\r\n methods: {\r\n /** 查询教研室列表 */\r\n getList() {\r\n this.loading = true\r\n listOffice(this.queryParams).then(response => {\r\n // 后端返回 MyBatis-Plus 分页结构:data.records / data.total\r\n const data = response.data || {}\r\n this.officeList = data.records || []\r\n this.total = data.total || 0\r\n this.loading = false\r\n }).catch(() => {\r\n this.officeList = []\r\n this.total = 0\r\n this.loading = false\r\n })\r\n },\r\n /** 查询按钮 */\r\n handleQuery() {\r\n this.queryParams.pageNum = 1\r\n this.getList()\r\n },\r\n /** 重置按钮 */\r\n resetQuery() {\r\n this.resetForm(\"queryForm\")\r\n this.handleQuery()\r\n },\r\n /** 新增按钮 */\r\n handleAdd() {\r\n this.reset()\r\n this.isAdd = true\r\n this.open = true\r\n this.title = \"新增教研室\"\r\n },\r\n /** 编辑按钮 */\r\n handleUpdate(row) {\r\n this.reset()\r\n this.isAdd = false\r\n // 编辑:jysdh 必传\r\n this.form = {\r\n jysdh: row.jysdh,\r\n jysmc: row.jysmc,\r\n jc: row.jc,\r\n bx: row.bx,\r\n xh: row.xh,\r\n bz: row.bz\r\n }\r\n this.open = true\r\n this.title = \"编辑教研室\"\r\n },\r\n /** 停用按钮 */\r\n handleDisable(row) {\r\n const jysdh = row.jysdh\r\n this.$modal.confirm('确认停用教研室【' + row.jysmc + '】吗?').then(() => {\r\n return disableOffice(jysdh)\r\n }).then(() => {\r\n this.getList()\r\n this.$modal.msgSuccess(\"停用成功\")\r\n }).catch(() => {})\r\n },\r\n /** 提交表单 */\r\n submitForm() {\r\n this.$refs[\"form\"].validate(valid => {\r\n if (valid) {\r\n if (this.isAdd) {\r\n addOffice(this.form).then(response => {\r\n this.$modal.msgSuccess(\"新增成功\")\r\n this.open = false\r\n this.getList()\r\n }).catch(() => {})\r\n } else {\r\n updateOffice(this.form).then(response => {\r\n this.$modal.msgSuccess(\"修改成功\")\r\n this.open = false\r\n this.getList()\r\n }).catch(() => {})\r\n }\r\n }\r\n })\r\n },\r\n /** 重置表单 */\r\n reset() {\r\n this.form = {\r\n jysdh: undefined,\r\n jysmc: undefined,\r\n jc: undefined,\r\n bx: undefined,\r\n xh: undefined,\r\n bz: undefined\r\n }\r\n this.resetForm(\"form\")\r\n },\r\n /** 取消按钮 */\r\n cancel() {\r\n this.open = false\r\n this.reset()\r\n },\r\n /** 打开导入对话框 */\r\n openImport() {\r\n this.importOpen = true\r\n this.$nextTick(() => {\r\n if (this.$refs.uploadRef) {\r\n this.$refs.uploadRef.clearFiles()\r\n }\r\n })\r\n },\r\n /** 导入前校验文件格式 */\r\n beforeImport(file) {\r\n const name = file.name.toLowerCase()\r\n if (!name.endsWith('.xls') && !name.endsWith('.xlsx')) {\r\n this.$modal.msgError('仅支持 xls、xlsx 格式文件')\r\n return false\r\n }\r\n return true\r\n },\r\n /** 提交导入 */\r\n submitImport() {\r\n const files = this.$refs.uploadRef.uploadFiles\r\n if (!files || files.length === 0) {\r\n this.$modal.msgError('请选择要导入的文件')\r\n return\r\n }\r\n this.$refs.uploadRef.submit()\r\n },\r\n /** 导入成功 */\r\n handleImportSuccess(response) {\r\n this.importOpen = false\r\n this.$alert(\"<div style='overflow:auto;overflow-x:hidden;max-height:70vh;padding:10px 20px 0;'>\" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })\r\n this.getList()\r\n },\r\n /** 导入失败 */\r\n handleImportError() {\r\n this.$modal.msgError('导入失败,请稍后重试')\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.teach-office {\r\n .mb8 {\r\n margin-bottom: 8px;\r\n }\r\n}\r\n</style>\r\n\r\n\r\n"]}]}