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

1 line
36 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\\student\\warningCondition\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\warningCondition\\index.vue","mtime":1787567871647},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgew0KICBsaXN0V2FybmluZ0NvbmRpdGlvbiwNCiAgZ2V0V2FybmluZ0NvbmRpdGlvbiwNCiAgYWRkV2FybmluZ0NvbmRpdGlvbiwNCiAgdXBkYXRlV2FybmluZ0NvbmRpdGlvbg0KfSBmcm9tICJAL2FwaS9zdHVkZW50UmVjb3Jkcy93YXJuaW5nQ29uZGl0aW9uIg0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJXYXJuaW5nQ29uZGl0aW9uIiwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p+l6K+i5p2h5Lu2ID09PT09PT09PT09PT09PT09PT09DQogICAgICBzZWFyY2hGb3JtOiB7DQogICAgICAgIG1jOiAnJywNCiAgICAgICAgcHhseDogJycsDQogICAgICAgIHB4Y2M6ICcnLA0KICAgICAgICB0eTogJycNCiAgICAgIH0sDQoNCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOWIl+ihqOaVsOaNriA9PT09PT09PT09PT09PT09PT09PQ0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICB0YWJsZURhdGE6IFtdLA0KICAgICAgdG90YWw6IDAsDQogICAgICBwYWdlTnVtOiAxLA0KICAgICAgcGFnZVNpemU6IDIwLA0KDQogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4v57yW6L6RID09PT09PT09PT09PT09PT09PT09DQogICAgICBmb3JtRGlhbG9nVmlzaWJsZTogZmFsc2UsDQogICAgICBmb3JtVGl0bGU6ICfmlrDlop7pooTorabmnaHku7YnLA0KICAgICAgaXNBZGQ6IHRydWUsDQogICAgICBmb3JtU2F2aW5nOiBmYWxzZSwNCiAgICAgIGZvcm06IHRoaXMuY3JlYXRlRW1wdHlGb3JtKCksDQogICAgICBmb3JtUnVsZXM6IHsNCiAgICAgICAgbWM6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi5ZCN56ew5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH1dLA0KICAgICAgICB0eTogW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICLlgZznlKjkuI3og73kuLrnqboiLCB0cmlnZ2VyOiAiY2hhbmdlIiB9XSwNCiAgICAgICAgYmI6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAi54mI5pys5LiN6IO95Li656m6IiwgdHJpZ2dlcjogImJsdXIiIH1dLA0KICAgICAgICB4Z3NqOiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogIuS/ruaUueaXtumXtOS4jeiDveS4uuepuiIsIHRyaWdnZXI6ICJjaGFuZ2UiIH1dDQogICAgICB9LA0KDQogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDor6bmg4UgPT09PT09PT09PT09PT09PT09PT0NCiAgICAgIHZpZXdEaWFsb2dWaXNpYmxlOiBmYWxzZSwNCiAgICAgIHZpZXdMb2FkaW5nOiBmYWxzZSwNCiAgICAgIHZpZXdGb3JtOiB7fQ0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmZldGNoTGlzdCgpDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvKiog5Yib5bu656m66KGo5Y2VICovDQogICAgY3JlYXRlRW1wdHlGb3JtKCkgew0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgbWM6ICcnLA0KICAgICAgICBweGx4OiAnJywNCiAgICAgICAgcHhjYzogJycsDQogICAgICAgIGRxeHFrc2JqZ21zc3g6IHVuZGVmaW5lZCwNCiAgICAgICAgZHF4cWtzYmpnbXN4eDogdW5kZWZpbmVkLA0KICAgICAgICBkcXhxa2Niamdtc3N4OiB1bmRlZmluZWQsDQogICAgICAgIGRxeHFrY2JqZ21zeHg6IHVuZGVmaW5lZCwNCiAgICAgICAgZHF4cWJqZ21zc3g6IHVuZGVmaW5lZCwNCiAgICAgICAgZHF4cWJqZ21zeHg6IHVuZGVmaW5lZCwNCiAgICAgICAgcWJrc2JqZ21zc3g6IHVuZGVmaW5lZCwNCiAgICAgICAgcWJrc2JqZ21zeHg6IHVuZGVmaW5lZCwNCiAgICAgICAgcWJrY2JqZ21zc3g6IHVuZGVmaW5lZCwNCiAgICAgICAgcWJrY2JqZ21zeHg6IHVuZGVmaW5lZCwNCiAgICAgICAgcWJiamdtc3N4OiB1bmRlZmluZWQsDQogICAgICAgIHFiYmpnbXN4eDogdW5kZWZpbmVkLA0KICAgICAgICB0eTogMCwNCiAgICAgICAgYmI6ICcnLA0KICAgICAgICB4Z3NqOiAnJw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmn6Xor6LliJfooaggPT09PT09PT09PT09PT09PT09PT0NCiAgICBmZXRjaExpc3QoKSB7DQogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlDQogICAgICBjb25zdCBwYXJhbXMgPSB7DQogICAgICAgIHBhZ2VOdW06IHRoaXMucGFnZU51bSwNCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUNCiAgICAgIH0NCiAgICAgIC8vIOeKtuaAge+8mjAg5ZCv55SoIC8gMSDlgZznlKjvvIjpgInkuK3ml7bmiY3kvKDvvIkNCiAgICAgIGlmICh0aGlzLnNlYXJjaEZvcm0udHkgIT09ICcnICYmIHRoaXMuc2VhcmNoRm9ybS50eSAhPT0gbnVsbCAmJiB0aGlzLnNlYXJjaEZvcm0udHkgIT09IHVuZGVmaW5lZCkgew0KICAgICAgICBwYXJhbXMudHkgPSB0aGlzLnNlYXJjaEZvcm0udHkNCiAgICAgIH0NCiAgICAgIC8vIOWFtuS9meaWh+acrOadoeS7tumdnuepuuaXtuaJjeS8oA0KICAgICAgO1snbWMnLCAncHhseCcsICdweGNjJ10uZm9yRWFjaChrZXkgPT4gew0KICAgICAgICBpZiAodGhpcy5zZWFyY2hGb3JtW2tleV0gIT09ICcnICYmIHRoaXMuc2VhcmNoRm9ybVtrZXldICE9PSBudWxsICYmIHRoaXMuc2VhcmNoRm9ybVtrZXldICE9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICBwYXJhbXNba2V5XSA9IHRoaXMuc2VhcmNoRm9ybVtrZXldLnRyaW0oKQ0KICAgICAgICB9DQogICAgICB9KQ0KICAgICAgbGlzdFdhcm5pbmdDb25kaXRpb24ocGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsNCiAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEgfHwge30NCiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBkYXRhLnJlY29yZHMgfHwgW10NCiAgICAgICAgdGhpcy50b3RhbCA9IGRhdGEudG90YWwgfHwgMA0KICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdDQogICAgICAgIHRoaXMudG90YWwgPSAwDQogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlDQogICAgICB9KQ0KICAgIH0sDQoNCiAgICBoYW5kbGVTZWFyY2goKSB7DQogICAgICB0aGlzLnBhZ2VOdW0gPSAxDQogICAgICB0aGlzLmZldGNoTGlzdCgpDQogICAgfSwNCg0KICAgIGhhbmRsZVJlc2V0KCkgew0KICAgICAgdGhpcy5zZWFyY2hGb3JtID0gew0KICAgICAgICBtYzogJycsDQogICAgICAgIHB4bHg6ICcnLA0KICAgICAgICBweGNjOiAnJywNCiAgICAgICAgdHk6ICcnDQogICAgICB9DQogICAgICB0aGlzLnBhZ2VOdW0gPSAxDQogICAgICB0aGlzLmZldGNoTGlzdCgpDQogICAgfSwNCg0KICAgIGhhbmRsZVBhZ2VDaGFuZ2UoY3VycmVudCkgew0KICAgICAgdGhpcy5wYWdlTnVtID0gY3VycmVudA0KICAgICAgdGhpcy5mZXRjaExpc3QoKQ0KICAgIH0sDQoNCiAgICBoYW5kbGVTaXplQ2hhbmdlKHNpemUpIHsNCiAgICAgIHRoaXMucGFnZVNpemUgPSBzaXplDQogICAgICB0aGlzLnBhZ2VOdW0gPSAxDQogICAgICB0aGlzLmZldGNoTGlzdCgpDQogICAgfSwNCg0KICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaWsOWini/nvJbovpEgPT09PT09PT09PT09PT09PT09PT0NCiAgICBoYW5kbGVBZGQoKSB7DQogICAgICB0aGlzLmlzQWRkID0gdHJ1ZQ0KICAgICAgdGhpcy5mb3JtVGl0bGUgPSAn5paw5aKe6aKE6K2m5p2h5Lu2Jw0KICAgICAgdGhpcy5mb3JtID0gdGhpcy5jcmVhdGVFbXB0eUZvcm0oKQ0KICAgICAgdGhpcy5mb3JtRGlhbG9nVmlzaWJsZSA9IHRydWUNCiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgdGhpcy4kcmVmcy5mb3JtUmVmICYmIHRoaXMuJHJlZnMuZm9ybVJlZi5jbGVhclZhbGlkYXRlKCkNCiAgICAgIH0pDQogICAgfSwNCg0KICAgIGhhbmRsZUVkaXQocm93KSB7DQogICAgICB0aGlzLmlzQWRkID0gZmFsc2UNCiAgICAgIHRoaXMuZm9ybVRpdGxlID0gJ+e8lui+kemihOitpuadoeS7ticNCiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRW1wdHlGb3JtKCkNCiAgICAgIHRoaXMuZm9ybURpYWxvZ1Zpc2libGUgPSB0cnVlDQogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgIHRoaXMuJHJlZnMuZm9ybVJlZiAmJiB0aGlzLiRyZWZzLmZvcm1SZWYuY2xlYXJWYWxpZGF0ZSgpDQogICAgICB9KQ0KICAgICAgZ2V0V2FybmluZ0NvbmRpdGlvbihyb3cuYmgpLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YSB8fCB7fQ0KICAgICAgICB0aGlzLmZpbGxGb3JtRGF0YShkYXRhKQ0KICAgICAgfSkuY2F0Y2goKCkgPT4ge30pDQogICAgfSwNCg0KICAgIC8qKiDlm57loavooajljZXmlbDmja4gKi8NCiAgICBmaWxsRm9ybURhdGEoZGF0YSkgew0KICAgICAgY29uc3QgZmllbGRLZXlzID0gWw0KICAgICAgICAnbWMnLCAncHhseCcsICdweGNjJywNCiAgICAgICAgJ2RxeHFrc2JqZ21zc3gnLCAnZHF4cWtzYmpnbXN4eCcsDQogICAgICAgICdkcXhxa2Niamdtc3N4JywgJ2RxeHFrY2JqZ21zeHgnLA0KICAgICAgICAnZHF4cWJqZ21zc3gnLCAnZHF4cWJqZ21zeHgnLA0KICAgICAgICAncWJrc2JqZ21zc3gnLCAncWJrc2JqZ21zeHgnLA0KICAgICAgICAncWJrY2JqZ21zc3gnLCAncWJrY2JqZ21zeHgnLA0KICAgICAgICAncWJiamdtc3N4JywgJ3FiYmpnbXN4eCcsDQogICAgICAgICdiYicsICd4Z3NqJw0KICAgICAgXQ0KICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVFbXB0eUZvcm0oKQ0KICAgICAgZmllbGRLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgcmVzdWx0W2tleV0gPSBkYXRhW2tleV0gIT09IG51bGwgJiYgZGF0YVtrZXldICE9PSB1bmRlZmluZWQgPyBkYXRhW2tleV0gOiByZXN1bHRba2V5XQ0KICAgICAgfSkNCiAgICAgIHJlc3VsdC5iaCA9IGRhdGEuYmgNCiAgICAgIHJlc3VsdC50eSA9IGRhdGEudHkgPT09IDEgfHwgZGF0YS50eSA9PT0gdHJ1ZSA/IDEgOiAwDQogICAgICB0aGlzLmZvcm0gPSByZXN1bHQNCiAgICB9LA0KDQogICAgaGFuZGxlRm9ybVN1Ym1pdCgpIHsNCiAgICAgIHRoaXMuJHJlZnMuZm9ybVJlZi52YWxpZGF0ZSh2YWxpZCA9PiB7DQogICAgICAgIGlmICghdmFsaWQpIHJldHVybg0KICAgICAgICB0aGlzLmZvcm1TYXZpbmcgPSB0cnVlDQogICAgICAgIGNvbnN0IHBheWxvYWQgPSB7IC4uLnRoaXMuZm9ybSB9DQogICAgICAgIGlmICghdGhpcy5pc0FkZCkgew0KICAgICAgICAgIHBheWxvYWQuYmggPSB0aGlzLmZvcm0uYmgNCiAgICAgICAgfQ0KICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5pc0FkZCA/IGFkZFdhcm5pbmdDb25kaXRpb24ocGF5bG9hZCkgOiB1cGRhdGVXYXJuaW5nQ29uZGl0aW9uKHBheWxvYWQpDQogICAgICAgIHJlcXVlc3QudGhlbigoKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKHRoaXMuaXNBZGQgPyAn5paw5aKe5oiQ5YqfJyA6ICfkv67mlLnmiJDlip8nKQ0KICAgICAgICAgIHRoaXMuZm9ybURpYWxvZ1Zpc2libGUgPSBmYWxzZQ0KICAgICAgICAgIHRoaXMuZmV0Y2hMaXN0KCkNCiAgICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICB9KS5maW5hbGx5KCgpID0+IHsNCiAgICAgICAgICB0aGlzLmZvcm1TYXZpbmcgPSBmYWxzZQ0KICAgICAgICB9KQ0KICAgICAgfSkNCiAgICB9LA0KDQogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5YGc55SoL+WQr+eUqOWIh+aNoiA9PT09PT09PT09PT09PT09PT09PQ0KICAgIGhhbmRsZVRvZ2dsZURpc2FibGUocm93LCB2YWwpIHsNCiAgICAgIGNvbnN0IGlzRGlzYWJsZSA9IHZhbCA9PT0gMSB8fCB2YWwgPT09IHRydWUNCiAgICAgIGNvbnN0IHByZXZUeSA9IGlzRGlzYWJsZSA/IDAgOiAxDQogICAgICBjb25zdCBhY3Rpb25OYW1lID0gaXNEaXNhYmxlID8gJ+WBnOeUqCcgOiAn5ZCv55SoJw0KICAgICAgdGhpcy4kY29uZmlybShg56Gu5a6a6KaBJHthY3Rpb25OYW1lfeOAjCR7cm93Lm1jIHx8IHJvdy5iaCB8fCAn6K+l6aKE6K2m5p2h5Lu2J33jgI3lkJfvvJ9gLCAn57O757uf5o+Q56S6Jywgew0KICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsDQogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLA0KICAgICAgICB0eXBlOiAnd2FybmluZycNCiAgICAgIH0pLnRoZW4oKCkgPT4gew0KICAgICAgICByZXR1cm4gdXBkYXRlV2FybmluZ0NvbmRpdGlvbih7IC4uLnJvdywgdHk6IGlzRGlzYWJsZSA/IDEgOiAwIH0pDQogICAgICB9KS50aGVuKCgpID0+IHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKGFjdGlvbk5hbWUgKyAn5oiQ5YqfJykNCiAgICAgICAgdGhpcy5mZXRjaExpc3QoKQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICAvLyDlj5bmtojmiJbmjqXlj6PlpLHotKXml7blm57mu5rlvIDlhbPnirbmgIHlubbliLfmlrANCiAgICAgICAgcm93LnR5ID0gcHJldlR5DQogICAgICAgIHRoaXMuZmV0Y2hMaXN0KCkNCiAgICAgIH0pDQogICAgfSwNCg0KICAgIC8vID09PT09PT09PT09PT09PT09PT09IOivpuaDhSA9PT09PT09PT09PT09PT09PT09PQ0KICAgIGhhbmRsZVZpZXcocm93KSB7DQogICAgICB0aGlzLnZpZXdEaWFsb2dWaXNpYmxlID0gdHJ1ZQ0KICAgICAgdGhpcy52aWV3TG9hZGluZyA9IHRydWUNCiAgICAgIHRoaXMudmlld0Zvcm0gPSB7fQ0KICAgICAgZ2V0V2FybmluZ0NvbmRpdGlvbihyb3cuYmgpLnRoZW4ocmVzcG9uc2UgPT4gew0KICAgICAgICB0aGlzLnZpZXdGb3JtID0gcmVzcG9uc2UuZGF0YSB8fCB7fQ0KICAgICAgICB0aGlzLnZpZXdMb2FkaW5nID0gZmFsc2UNCiAgICAgIH0pLmNhdGNoKCgpID0+IHsNCiAgICAgICAgdGhpcy52aWV3TG9hZGluZyA9IGZhbHNlDQogICAgICB9KQ0KICAgIH0sDQoNCiAgICAvKiog56m65YC85pi+56S65Y2g5L2N56ymICovDQogICAgZm9ybWF0VmFsdWUodmFsKSB7DQogICAgICByZXR1cm4gdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkID8gdmFsIDogJy0nDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+OA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/student/warningCondition","sourcesContent":["<template>\r\n <div class=\"app-container warning-condition-page\">\r\n <!-- ==================== 1. 查询条件 ==================== -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form ref=\"searchFormRef\" :model=\"searchForm\" label-width=\"90px\" class=\"search-form\">\r\n <el-row :gutter=\"24\">\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\r\n <el-form-item label=\"名称\">\r\n <el-input v-model=\"searchForm.mc\" placeholder=\"请输入名称\" clearable @keyup.enter.native=\"handleSearch\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\r\n <el-form-item label=\"培训类型\">\r\n <el-input v-model=\"searchForm.pxlx\" placeholder=\"请输入培训类型\" clearable @keyup.enter.native=\"handleSearch\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\r\n <el-form-item label=\"培训层次\">\r\n <el-input v-model=\"searchForm.pxcc\" placeholder=\"请输入培训层次\" clearable @keyup.enter.native=\"handleSearch\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\r\n <el-form-item label=\"状态\">\r\n <el-select v-model=\"searchForm.ty\" placeholder=\"请选择状态\" clearable style=\"width: 100%\">\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-col>\r\n </el-row>\r\n <el-row class=\"search-actions-row\">\r\n <el-col :span=\"24\" class=\"search-actions\">\r\n <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\">查询</el-button>\r\n <el-button icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- ==================== 2. 列表 ==================== -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <div class=\"table-header\">\r\n <span class=\"table-title\">预警条件列表:</span>\r\n <div class=\"table-actions\">\r\n <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"handleAdd\">新增预警条件</el-button>\r\n </div>\r\n </div>\r\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row>\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\r\n <el-table-column prop=\"bh\" label=\"编号\" width=\"100\" show-overflow-tooltip />\r\n <el-table-column prop=\"mc\" label=\"名称\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column prop=\"pxlx\" label=\"培训类型\" width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"pxcc\" label=\"培训层次\" width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"bb\" label=\"版本\" width=\"100\" show-overflow-tooltip />\r\n <el-table-column prop=\"xgsj\" label=\"修改时间\" width=\"170\" show-overflow-tooltip />\r\n <el-table-column label=\"停用\" width=\"80\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n <el-tag\r\n :type=\"scope.row.ty === 1 || scope.row.ty === true ? 'danger' : 'success'\"\r\n class=\"ty-tag\"\r\n @click.native=\"handleToggleDisable(scope.row, scope.row.ty === 1 || scope.row.ty === true ? 0 : 1)\"\r\n >\r\n {{ scope.row.ty === 1 || scope.row.ty === true ? '是' : '否' }}\r\n </el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" width=\"150\" align=\"center\" fixed=\"right\">\r\n <template slot-scope=\"scope\">\r\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-view\" @click=\"handleView(scope.row)\">详情</el-button>\r\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-edit\" @click=\"handleEdit(scope.row)\">编辑</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <el-pagination\r\n :current-page=\"pageNum\"\r\n :page-size=\"pageSize\"\r\n :total=\"total\"\r\n :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n class=\"pagination-wrapper\"\r\n @current-change=\"handlePageChange\"\r\n @size-change=\"handleSizeChange\"\r\n />\r\n </el-card>\r\n\r\n <!-- ==================== 3. 新增/编辑预警条件对话框 ==================== -->\r\n <el-dialog\r\n :title=\"formTitle\"\r\n :visible.sync=\"formDialogVisible\"\r\n width=\"900px\"\r\n :close-on-click-modal=\"false\"\r\n >\r\n <el-form ref=\"formRef\" :model=\"form\" :rules=\"formRules\" label-width=\"130px\" class=\"form-dialog-form\">\r\n <el-divider content-position=\"left\">基本信息</el-divider>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"名称\" prop=\"mc\">\r\n <el-input v-model=\"form.mc\" placeholder=\"请输入名称\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"培训类型\" prop=\"pxlx\">\r\n <el-input v-model=\"form.pxlx\" placeholder=\"请输入培训类型\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"培训层次\" prop=\"pxcc\">\r\n <el-input v-model=\"form.pxcc\" placeholder=\"请输入培训层次\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"版本\" prop=\"bb\">\r\n <el-input v-model=\"form.bb\" placeholder=\"请输入版本\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"停用\" prop=\"ty\">\r\n <el-switch v-model=\"form.ty\" :active-value=\"1\" :inactive-value=\"0\" active-text=\"是\" inactive-text=\"否\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"修改时间\" prop=\"xgsj\">\r\n <el-date-picker v-model=\"form.xgsj\" type=\"datetime\" placeholder=\"请选择修改时间\" value-format=\"yyyy-MM-dd HH:mm:ss\" style=\"width: 100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-divider content-position=\"left\">当前学期门数限制</el-divider>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考试不及格门数下限\">\r\n <el-input-number v-model=\"form.dqxqksbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考试不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考试不及格门数上限\">\r\n <el-input-number v-model=\"form.dqxqksbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考试不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考查不及格门数下限\">\r\n <el-input-number v-model=\"form.dqxqkcbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考查不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考查不及格门数上限\">\r\n <el-input-number v-model=\"form.dqxqkcbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考查不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"不及格门数下限\">\r\n <el-input-number v-model=\"form.dqxqbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"不及格门数上限\">\r\n <el-input-number v-model=\"form.dqxqbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-divider content-position=\"left\">全部门数限制</el-divider>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考试不及格门数下限\">\r\n <el-input-number v-model=\"form.qbksbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考试不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考试不及格门数上限\">\r\n <el-input-number v-model=\"form.qbksbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考试不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考查不及格门数下限\">\r\n <el-input-number v-model=\"form.qbkcbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考查不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"考查不及格门数上限\">\r\n <el-input-number v-model=\"form.qbkcbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入考查不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"不及格门数下限\">\r\n <el-input-number v-model=\"form.qbbjgmsxx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入不及格门数下限\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"不及格门数上限\">\r\n <el-input-number v-model=\"form.qbbjgmssx\" :min=\"0\" :max=\"999\" controls-position=\"right\" style=\"width: 100%\" placeholder=\"请输入不及格门数上限\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"formDialogVisible = false\">取 消</el-button>\r\n <el-button type=\"primary\" :loading=\"formSaving\" @click=\"handleFormSubmit\">确 定</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- ==================== 4. 详情对话框 ==================== -->\r\n <el-dialog title=\"预警条件详情\" :visible.sync=\"viewDialogVisible\" width=\"800px\" :close-on-click-modal=\"false\">\r\n <div v-loading=\"viewLoading\" class=\"detail-body\">\r\n <el-descriptions :column=\"2\" border>\r\n <el-descriptions-item label=\"编号\">{{ viewForm.bh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"名称\">{{ viewForm.mc || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"培训类型\">{{ viewForm.pxlx || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"培训层次\">{{ viewForm.pxcc || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"版本\">{{ viewForm.bb || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"修改时间\">{{ viewForm.xgsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期考试不及格门数下限\">{{ formatValue(viewForm.dqxqksbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期考试不及格门数上限\">{{ formatValue(viewForm.dqxqksbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期考查不及格门数下限\">{{ formatValue(viewForm.dqxqkcbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期考查不及格门数上限\">{{ formatValue(viewForm.dqxqkcbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期不及格门数下限\">{{ formatValue(viewForm.dqxqbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"当前学期不及格门数上限\">{{ formatValue(viewForm.dqxqbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部考试不及格门数下限\">{{ formatValue(viewForm.qbksbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部考试不及格门数上限\">{{ formatValue(viewForm.qbksbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部考查不及格门数下限\">{{ formatValue(viewForm.qbkcbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部考查不及格门数上限\">{{ formatValue(viewForm.qbkcbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部不及格门数下限\">{{ formatValue(viewForm.qbbjgmsxx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"全部不及格门数上限\">{{ formatValue(viewForm.qbbjgmssx) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"停用\">\r\n <el-tag :type=\"viewForm.ty === 1 || viewForm.ty === true ? 'danger' : 'success'\" size=\"mini\">\r\n {{ viewForm.ty === 1 || viewForm.ty === true ? '是' : '否' }}\r\n </el-tag>\r\n </el-descriptions-item>\r\n </el-descriptions>\r\n </div>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"viewDialogVisible = false\">关 闭</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n listWarningCondition,\r\n getWarningCondition,\r\n addWarningCondition,\r\n updateWarningCondition\r\n} from \"@/api/studentRecords/warningCondition\"\r\n\r\nexport default {\r\n name: \"WarningCondition\",\r\n data() {\r\n return {\r\n // ==================== 查询条件 ====================\r\n searchForm: {\r\n mc: '',\r\n pxlx: '',\r\n pxcc: '',\r\n ty: ''\r\n },\r\n\r\n // ==================== 列表数据 ====================\r\n loading: false,\r\n tableData: [],\r\n total: 0,\r\n pageNum: 1,\r\n pageSize: 20,\r\n\r\n // ==================== 新增/编辑 ====================\r\n formDialogVisible: false,\r\n formTitle: '新增预警条件',\r\n isAdd: true,\r\n formSaving: false,\r\n form: this.createEmptyForm(),\r\n formRules: {\r\n mc: [{ required: true, message: \"名称不能为空\", trigger: \"blur\" }],\r\n ty: [{ required: true, message: \"停用不能为空\", trigger: \"change\" }],\r\n bb: [{ required: true, message: \"版本不能为空\", trigger: \"blur\" }],\r\n xgsj: [{ required: true, message: \"修改时间不能为空\", trigger: \"change\" }]\r\n },\r\n\r\n // ==================== 详情 ====================\r\n viewDialogVisible: false,\r\n viewLoading: false,\r\n viewForm: {}\r\n }\r\n },\r\n created() {\r\n this.fetchList()\r\n },\r\n methods: {\r\n /** 创建空表单 */\r\n createEmptyForm() {\r\n return {\r\n mc: '',\r\n pxlx: '',\r\n pxcc: '',\r\n dqxqksbjgmssx: undefined,\r\n dqxqksbjgmsxx: undefined,\r\n dqxqkcbjgmssx: undefined,\r\n dqxqkcbjgmsxx: undefined,\r\n dqxqbjgmssx: undefined,\r\n dqxqbjgmsxx: undefined,\r\n qbksbjgmssx: undefined,\r\n qbksbjgmsxx: undefined,\r\n qbkcbjgmssx: undefined,\r\n qbkcbjgmsxx: undefined,\r\n qbbjgmssx: undefined,\r\n qbbjgmsxx: undefined,\r\n ty: 0,\r\n bb: '',\r\n xgsj: ''\r\n }\r\n },\r\n\r\n // ==================== 查询列表 ====================\r\n fetchList() {\r\n this.loading = true\r\n const params = {\r\n pageNum: this.pageNum,\r\n pageSize: this.pageSize\r\n }\r\n // 状态:0 启用 / 1 停用(选中时才传)\r\n if (this.searchForm.ty !== '' && this.searchForm.ty !== null && this.searchForm.ty !== undefined) {\r\n params.ty = this.searchForm.ty\r\n }\r\n // 其余文本条件非空时才传\r\n ;['mc', 'pxlx', 'pxcc'].forEach(key => {\r\n if (this.searchForm[key] !== '' && this.searchForm[key] !== null && this.searchForm[key] !== undefined) {\r\n params[key] = this.searchForm[key].trim()\r\n }\r\n })\r\n listWarningCondition(params).then(response => {\r\n const data = response.data || {}\r\n this.tableData = data.records || []\r\n this.total = data.total || 0\r\n this.loading = false\r\n }).catch(() => {\r\n this.tableData = []\r\n this.total = 0\r\n this.loading = false\r\n })\r\n },\r\n\r\n handleSearch() {\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleReset() {\r\n this.searchForm = {\r\n mc: '',\r\n pxlx: '',\r\n pxcc: '',\r\n ty: ''\r\n }\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handlePageChange(current) {\r\n this.pageNum = current\r\n this.fetchList()\r\n },\r\n\r\n handleSizeChange(size) {\r\n this.pageSize = size\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n // ==================== 新增/编辑 ====================\r\n handleAdd() {\r\n this.isAdd = true\r\n this.formTitle = '新增预警条件'\r\n this.form = this.createEmptyForm()\r\n this.formDialogVisible = true\r\n this.$nextTick(() => {\r\n this.$refs.formRef && this.$refs.formRef.clearValidate()\r\n })\r\n },\r\n\r\n handleEdit(row) {\r\n this.isAdd = false\r\n this.formTitle = '编辑预警条件'\r\n this.form = this.createEmptyForm()\r\n this.formDialogVisible = true\r\n this.$nextTick(() => {\r\n this.$refs.formRef && this.$refs.formRef.clearValidate()\r\n })\r\n getWarningCondition(row.bh).then(response => {\r\n const data = response.data || {}\r\n this.fillFormData(data)\r\n }).catch(() => {})\r\n },\r\n\r\n /** 回填表单数据 */\r\n fillFormData(data) {\r\n const fieldKeys = [\r\n 'mc', 'pxlx', 'pxcc',\r\n 'dqxqksbjgmssx', 'dqxqksbjgmsxx',\r\n 'dqxqkcbjgmssx', 'dqxqkcbjgmsxx',\r\n 'dqxqbjgmssx', 'dqxqbjgmsxx',\r\n 'qbksbjgmssx', 'qbksbjgmsxx',\r\n 'qbkcbjgmssx', 'qbkcbjgmsxx',\r\n 'qbbjgmssx', 'qbbjgmsxx',\r\n 'bb', 'xgsj'\r\n ]\r\n const result = this.createEmptyForm()\r\n fieldKeys.forEach(key => {\r\n result[key] = data[key] !== null && data[key] !== undefined ? data[key] : result[key]\r\n })\r\n result.bh = data.bh\r\n result.ty = data.ty === 1 || data.ty === true ? 1 : 0\r\n this.form = result\r\n },\r\n\r\n handleFormSubmit() {\r\n this.$refs.formRef.validate(valid => {\r\n if (!valid) return\r\n this.formSaving = true\r\n const payload = { ...this.form }\r\n if (!this.isAdd) {\r\n payload.bh = this.form.bh\r\n }\r\n const request = this.isAdd ? addWarningCondition(payload) : updateWarningCondition(payload)\r\n request.then(() => {\r\n this.$message.success(this.isAdd ? '新增成功' : '修改成功')\r\n this.formDialogVisible = false\r\n this.fetchList()\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.formSaving = false\r\n })\r\n })\r\n },\r\n\r\n // ==================== 停用/启用切换 ====================\r\n handleToggleDisable(row, val) {\r\n const isDisable = val === 1 || val === true\r\n const prevTy = isDisable ? 0 : 1\r\n const actionName = isDisable ? '停用' : '启用'\r\n this.$confirm(`确定要${actionName}「${row.mc || row.bh || '该预警条件'}」吗?`, '系统提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n return updateWarningCondition({ ...row, ty: isDisable ? 1 : 0 })\r\n }).then(() => {\r\n this.$message.success(actionName + '成功')\r\n this.fetchList()\r\n }).catch(() => {\r\n // 取消或接口失败时回滚开关状态并刷新\r\n row.ty = prevTy\r\n this.fetchList()\r\n })\r\n },\r\n\r\n // ==================== 详情 ====================\r\n handleView(row) {\r\n this.viewDialogVisible = true\r\n this.viewLoading = true\r\n this.viewForm = {}\r\n getWarningCondition(row.bh).then(response => {\r\n this.viewForm = response.data || {}\r\n this.viewLoading = false\r\n }).catch(() => {\r\n this.viewLoading = false\r\n })\r\n },\r\n\r\n /** 空值显示占位符 */\r\n formatValue(val) {\r\n return val !== null && val !== undefined ? val : '-'\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.warning-condition-page {\r\n .search-card {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .search-form {\r\n ::v-deep .el-form-item {\r\n margin-bottom: 18px;\r\n }\r\n\r\n .search-actions-row {\r\n margin-top: 2px;\r\n border-top: 1px dashed #ebeef5;\r\n padding-top: 14px;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n gap: 12px;\r\n }\r\n }\r\n\r\n .table-card {\r\n .table-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n\r\n .table-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #303133;\r\n }\r\n\r\n .table-actions {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n }\r\n }\r\n\r\n .pagination-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 16px;\r\n }\r\n }\r\n\r\n .form-dialog-form {\r\n max-height: 62vh;\r\n overflow-y: auto;\r\n padding-right: 6px;\r\n\r\n ::v-deep .el-divider--horizontal {\r\n margin: 4px 0 16px;\r\n }\r\n }\r\n\r\n .ty-tag {\r\n cursor: pointer;\r\n user-select: none;\r\n }\r\n}\r\n</style>"]}]}