Browse Source

代码上传

zhangqiOMG 2 years ago
parent
commit
f165e76e52

+ 0 - 343
package-lock.json

@@ -31,7 +31,6 @@
         "@babel/core": "^7.12.16",
         "@babel/eslint-parser": "^7.12.16",
         "@vue/cli-plugin-babel": "^5.0.0",
-        "@vue/cli-plugin-eslint": "^5.0.0",
         "@vue/cli-service": "^5.0.0",
         "@vue/eslint-config-airbnb": "^6.0.0",
         "eslint": "^7.32.0",
@@ -2944,23 +2943,6 @@
         "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0"
       }
     },
-    "node_modules/@vue/cli-plugin-eslint": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.1.tgz",
-      "integrity": "sha512-ZGxIAT4b9ppMbePJrsZA6e5882n7JIQgji8LLyYSMuf0+GTsEjUDz01nRmAD7PW+Gpf8+B5oA2tU+S3E5l6/WA==",
-      "dev": true,
-      "dependencies": {
-        "@vue/cli-shared-utils": "^5.0.1",
-        "eslint-webpack-plugin": "^3.1.0",
-        "globby": "^11.0.2",
-        "webpack": "^5.54.0",
-        "yorkie": "^2.0.0"
-      },
-      "peerDependencies": {
-        "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0",
-        "eslint": ">=7.5.0"
-      }
-    },
     "node_modules/@vue/cli-plugin-router": {
       "version": "5.0.1",
       "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.1.tgz",
@@ -5145,12 +5127,6 @@
         "node": ">=6.0"
       }
     },
-    "node_modules/ci-info": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz",
-      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
-      "dev": true
-    },
     "node_modules/clean-css": {
       "version": "5.2.4",
       "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.2.4.tgz",
@@ -7218,40 +7194,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/eslint-webpack-plugin": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz",
-      "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==",
-      "dev": true,
-      "dependencies": {
-        "@types/eslint": "^7.28.2",
-        "jest-worker": "^27.3.1",
-        "micromatch": "^4.0.4",
-        "normalize-path": "^3.0.0",
-        "schema-utils": "^3.1.1"
-      },
-      "engines": {
-        "node": ">= 12.13.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0",
-        "webpack": "^5.0.0"
-      }
-    },
-    "node_modules/eslint-webpack-plugin/node_modules/schema-utils": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
-      "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
-      "dev": true,
-      "dependencies": {
-        "@types/json-schema": "^7.0.8",
-        "ajv": "^6.12.5",
-        "ajv-keywords": "^3.5.2"
-      },
-      "engines": {
-        "node": ">= 10.13.0"
-      }
-    },
     "node_modules/eslint/node_modules/@babel/code-frame": {
       "version": "7.12.11",
       "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.12.11.tgz",
@@ -8640,18 +8582,6 @@
         "node": ">= 0.4"
       }
     },
-    "node_modules/is-ci": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz",
-      "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
-      "dev": true,
-      "dependencies": {
-        "ci-info": "^1.5.0"
-      },
-      "bin": {
-        "is-ci": "bin.js"
-      }
-    },
     "node_modules/is-core-module": {
       "version": "2.8.1",
       "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz",
@@ -12356,15 +12286,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/strip-indent": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz",
-      "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/strip-json-comments": {
       "version": "3.1.1",
       "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -14864,118 +14785,6 @@
       "engines": {
         "node": ">=10"
       }
-    },
-    "node_modules/yorkie": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz",
-      "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==",
-      "dev": true,
-      "hasInstallScript": true,
-      "dependencies": {
-        "execa": "^0.8.0",
-        "is-ci": "^1.0.10",
-        "normalize-path": "^1.0.0",
-        "strip-indent": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/yorkie/node_modules/cross-spawn": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz",
-      "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^4.0.1",
-        "shebang-command": "^1.2.0",
-        "which": "^1.2.9"
-      }
-    },
-    "node_modules/yorkie/node_modules/execa": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz",
-      "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==",
-      "dev": true,
-      "dependencies": {
-        "cross-spawn": "^5.0.1",
-        "get-stream": "^3.0.0",
-        "is-stream": "^1.1.0",
-        "npm-run-path": "^2.0.0",
-        "p-finally": "^1.0.0",
-        "signal-exit": "^3.0.0",
-        "strip-eof": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/yorkie/node_modules/get-stream": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz",
-      "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/yorkie/node_modules/lru-cache": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz",
-      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-      "dev": true,
-      "dependencies": {
-        "pseudomap": "^1.0.2",
-        "yallist": "^2.1.2"
-      }
-    },
-    "node_modules/yorkie/node_modules/normalize-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz",
-      "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/yorkie/node_modules/shebang-command": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz",
-      "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
-      "dev": true,
-      "dependencies": {
-        "shebang-regex": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/yorkie/node_modules/shebang-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz",
-      "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/yorkie/node_modules/which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
-      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-      "dev": true,
-      "dependencies": {
-        "isexe": "^2.0.0"
-      },
-      "bin": {
-        "which": "bin/which"
-      }
-    },
-    "node_modules/yorkie/node_modules/yallist": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
-      "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
-      "dev": true
     }
   },
   "dependencies": {
@@ -17240,19 +17049,6 @@
         "webpack": "^5.54.0"
       }
     },
-    "@vue/cli-plugin-eslint": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-5.0.1.tgz",
-      "integrity": "sha512-ZGxIAT4b9ppMbePJrsZA6e5882n7JIQgji8LLyYSMuf0+GTsEjUDz01nRmAD7PW+Gpf8+B5oA2tU+S3E5l6/WA==",
-      "dev": true,
-      "requires": {
-        "@vue/cli-shared-utils": "^5.0.1",
-        "eslint-webpack-plugin": "^3.1.0",
-        "globby": "^11.0.2",
-        "webpack": "^5.54.0",
-        "yorkie": "^2.0.0"
-      }
-    },
     "@vue/cli-plugin-router": {
       "version": "5.0.1",
       "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.1.tgz",
@@ -19103,12 +18899,6 @@
       "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
       "dev": true
     },
-    "ci-info": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz",
-      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
-      "dev": true
-    },
     "clean-css": {
       "version": "5.2.4",
       "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.2.4.tgz",
@@ -20843,32 +20633,6 @@
       "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
       "dev": true
     },
-    "eslint-webpack-plugin": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz",
-      "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==",
-      "dev": true,
-      "requires": {
-        "@types/eslint": "^7.28.2",
-        "jest-worker": "^27.3.1",
-        "micromatch": "^4.0.4",
-        "normalize-path": "^3.0.0",
-        "schema-utils": "^3.1.1"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
-          "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
-          "dev": true,
-          "requires": {
-            "@types/json-schema": "^7.0.8",
-            "ajv": "^6.12.5",
-            "ajv-keywords": "^3.5.2"
-          }
-        }
-      }
-    },
     "espree": {
       "version": "7.3.1",
       "resolved": "https://registry.npmmirror.com/espree/-/espree-7.3.1.tgz",
@@ -21883,15 +21647,6 @@
       "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.4.tgz",
       "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
     },
-    "is-ci": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz",
-      "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
-      "dev": true,
-      "requires": {
-        "ci-info": "^1.5.0"
-      }
-    },
     "is-core-module": {
       "version": "2.8.1",
       "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz",
@@ -24816,12 +24571,6 @@
       "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
       "dev": true
     },
-    "strip-indent": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-2.0.0.tgz",
-      "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
-      "dev": true
-    },
     "strip-json-comments": {
       "version": "3.1.1",
       "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -26794,98 +26543,6 @@
       "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz",
       "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
       "dev": true
-    },
-    "yorkie": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/yorkie/-/yorkie-2.0.0.tgz",
-      "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==",
-      "dev": true,
-      "requires": {
-        "execa": "^0.8.0",
-        "is-ci": "^1.0.10",
-        "normalize-path": "^1.0.0",
-        "strip-indent": "^2.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz",
-          "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.8.0",
-          "resolved": "https://registry.npmmirror.com/execa/-/execa-0.8.0.tgz",
-          "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz",
-          "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
-          "dev": true
-        },
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz",
-          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "normalize-path": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-1.0.0.tgz",
-          "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==",
-          "dev": true
-        },
-        "shebang-command": {
-          "version": "1.2.0",
-          "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz",
-          "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
-          "dev": true,
-          "requires": {
-            "shebang-regex": "^1.0.0"
-          }
-        },
-        "shebang-regex": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz",
-          "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
-          "dev": true
-        },
-        "which": {
-          "version": "1.3.1",
-          "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
-          "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-          "dev": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
-          "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
-          "dev": true
-        }
-      }
     }
   }
 }

+ 0 - 1
package.json

@@ -31,7 +31,6 @@
     "@babel/core": "^7.12.16",
     "@babel/eslint-parser": "^7.12.16",
     "@vue/cli-plugin-babel": "^5.0.0",
-    "@vue/cli-plugin-eslint": "^5.0.0",
     "@vue/cli-service": "^5.0.0",
     "@vue/eslint-config-airbnb": "^6.0.0",
     "eslint": "^7.32.0",

+ 1 - 1
src/HManagement/archives_sc/archives_scclass/modules/del.vue

@@ -1,5 +1,5 @@
 <template>
-  <div style="display:inline;margin:0 16px">
+  <div style="display:inline;">
     <el-popconfirm
       title="确定删除当前分类吗?"
       @confirm="deleteRow()">

+ 95 - 71
src/HManagement/archives_sc/list/list.vue

@@ -1,90 +1,114 @@
 <template>
-<div>
-  <div class="container normal-panel normal-margin">
-    <slot name="add"></slot>
-  </div>
-  <div class="container normal-panel">
-    <!-- 表格搜索 -->
-    <div class="flex-align-center search-panel" style="margin-bottom:16px">
-      <div class="flex-align-center">
-        <p style="flex:1 0 auto;font-size:14px">一级分类:&nbsp;</p>
-        <el-select style="width:120px;margin-right:16px" size="small" v-model="params.content.where.sat_courseware_classid_1" @change="listData(params.content.pageNumber = 1)" clearable>
-          <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
-        </el-select>
-        <p style="flex:1 0 auto;font-size:14px">二级分类:&nbsp;</p>
-        <el-select style="width:120px;margin-right:16px" size="small" v-model="params.content.where.sat_courseware_classid_2" @change="listData(params.content.pageNumber = 1)" clearable>
-          <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname"></el-option>
-        </el-select>
-      </div>
-      <div class="flex-align-center">
-        <p style="width:40px">搜索:&nbsp;</p>
-        <el-input style="width:200px" size="small" placeholder="请输入查询内容" @clear="(params.content.where.condition = '',listData(params.content.pageNumber = 1))" @keyup.native.enter="listData(params.content.pageNumber = 1)"  v-model="params.content.where.condition" prefix-icon="el-icon-search" clearable></el-input>
-      </div>
+  <div>
+    <div class="container normal-panel normal-margin">
+      <slot name="add"></slot>
     </div>
-    <!-- 表格 -->
-    <tableLayout :layout="tablecols" :data="list" :custom="true" :height="tableHieght">
-      <template v-slot:customcol="scope">
-        <div v-if="scope.column.columnname === 'status'">
-          <span :style="scope.column.data.status === '新建'?'':'color:#52C41A'">{{scope.column.data.status}}</span>
+    <div class="container normal-panel">
+      <!-- 表格搜索 -->
+      <div class="flex-align-center search-panel" style="margin-bottom:16px">
+        <div class="flex-align-center">
+          <p style="flex:1 0 auto;font-size:14px">一级分类:&nbsp;</p>
+          <el-select style="width:120px;margin-right:16px" size="small"
+            v-model="params.content.where.sat_courseware_classid_1" @change="listData(params.content.pageNumber = 1)"
+            clearable>
+            <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid"
+              :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
+          </el-select>
+          <p style="flex:1 0 auto;font-size:14px">二级分类:&nbsp;</p>
+          <el-select style="width:120px;margin-right:16px" size="small"
+            v-model="params.content.where.sat_courseware_classid_2" @change="listData(params.content.pageNumber = 1)"
+            clearable>
+            <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid"
+              :label="item.classname"></el-option>
+          </el-select>
         </div>
-        <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
-      </template>
-      <template v-slot:opreation="scope">
-        <slot name="detail" :data="scope"></slot>
-        <slot name="edit" :data="scope"></slot>
-        <slot name="release" :data="scope"></slot>
-        <slot name="data_statistics" :data="scope"></slot>
-        <!-- <el-button size="mini" type="text" @click="onEdit(scope)">数据统计</el-button> -->
-        <slot name="del" :data="scope"></slot>
-      </template>
-    </tableLayout>
-    <div style="margin-top:16px;text-align:right">
-      <el-pagination
-        background
-        small
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-size="params.content.pageSize"
-        layout="total, prev, pager, next, jumper"
-        :total="total">
-      </el-pagination>
+        <div class="flex-align-center">
+          <p style="width:40px">搜索:&nbsp;</p>
+          <el-input style="width:200px" size="small" placeholder="请输入查询内容"
+            @clear="(params.content.where.condition = '', listData(params.content.pageNumber = 1))"
+            @keyup.native.enter="listData(params.content.pageNumber = 1)" v-model="params.content.where.condition"
+            prefix-icon="el-icon-search" clearable></el-input>
+        </div>
+      </div>
+      <!-- 表格 -->
+      <tableLayout :layout="tablecols" :data="list" :custom="true" :height="tableHieght">
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname === 'status'">
+            <span :style="scope.column.data.status === '新建' ? '' : 'color:#52C41A'">{{ scope.column.data.status
+            }}</span>
+          </div>
+          <p v-else>{{ scope.column.data[scope.column.columnname] }}</p>
+        </template>
+        <template v-slot:opreation="scope">
+          <slot name="detail" :data="scope"></slot>
+          <slot name="edit" :data="scope"></slot>
+          <slot name="release" :data="scope"></slot>
+          <slot name="data_statistics" :data="scope"></slot>
+          <!-- <el-button size="mini" type="text" @click="onEdit(scope)">数据统计</el-button> -->
+          <slot name="del" :data="scope"></slot>
+        </template>
+      </tableLayout>
+      <div style="margin-top:16px;text-align:right">
+        <el-pagination background small @size-change="handleSizeChange" @current-change="handleCurrentChange"
+          :current-page="currentPage" :page-size="params.content.pageSize" layout="total, prev, pager, next, jumper"
+          :total="total">
+        </el-pagination>
+      </div>
     </div>
   </div>
-</div>
 </template>
 
 <script>
 export default {
-  data () {
+  data() {
     return {
-      params:{
+      params: {
         "classname": "webmanage.saletool.courseware.courseware",
         "method": "select",
         "content": {
-            "pageNumber": 1,
-            "pageSize": 10,
-            "where": {
-              "condition": "",
-              "sat_courseware_classid_1":'',
-              "sat_courseware_classid_2":''
-            }
+          "pageNumber": 1,
+          "pageSize": 10,
+          "where": {
+            "condition": "",
+            "sat_courseware_classid_1": '',
+            "sat_courseware_classid_2": ''
+          }
         }
       },
-      options1:[],
-      options2:[],
-      tablecols:[],
-      list:[],
-      total:0,
-      currentPage:0
+      options1: [],
+      options2: [],
+      tablecols: [],
+      list: [],
+      total: 0,
+      currentPage: 0
     }
   },
-  methods:{
-    async listData () {
+  methods: {
+    async listData() {
       const res = await this.$api.requested(this.params)
+      //删除初始化的数据
+      let data = res.data,
+        deleteList = [];
+      data.forEach(v => {
+        if (v.status == '新建' && v.sat_courseware_classid == '9999' + JSON.parse(sessionStorage.getItem('active_account')).userid) deleteList.push(v.sat_coursewareid)
+      });
       this.list = res.data
       this.total = res.total
       this.currentPage = res.pageNumber
+      //处理删除
+      if (deleteList.length != 0) this.handleDeleye(deleteList);
+    },
+    handleDeleye(list) {
+      this.$api.requested({
+        "classname": "webmanage.saletool.courseware.courseware",
+        "method": "delete",
+        "content": {
+          "sat_coursewareid": list
+        }
+      }).then(res => {
+        if (res.msg != '成功') return;
+        this.listData();
+      })
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);
@@ -97,26 +121,26 @@ export default {
       this.listData()
     },
     // 分类查询
-    async coursewareclass () {
+    async coursewareclass() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.coursewareclass",
         "method": "select",
         "content": {
-            "parentid": 0
+          "parentid": 0
         }
       })
       this.options1 = res.data
     },
-    handelSelectClick (val) {
+    handelSelectClick(val) {
       this.options2 = val.children
       this.params.content.where.sat_courseware_classid_2 = ''
     }
   },
-  mounted () {
+  mounted() {
     this.listData()
     this.coursewareclass()
   },
-  created () {
+  created() {
     //获取表结构
     this.tablecols = this.tool.tabelCol(this.$route.name)['coursewaretTable'].tablecols
   }

+ 38 - 34
src/HManagement/archives_sc/list/modules/add.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
     <div class="container normal-panel normal-margin">
-      <el-button type="warning" size="small" icon="el-icon-s-claim" style="background:#FA8C16" @click="onSubmit">保 存</el-button>
+      <el-button type="warning" size="small" icon="el-icon-s-claim" style="background:#FA8C16" @click="onSubmit">保 存
+      </el-button>
     </div>
     <div style="overflow:hidden">
       <el-row :gutter="16">
@@ -9,30 +10,23 @@
           <div class="container normal-panel normal-margin">
             <p class="normal-title normal-margin" style="line-height:32px">课程设置</p>
             <el-row :gutter="20">
-              <el-form :model="form" size="small" status-icon label-position="left" label-width="100px" class="demo-ruleForm">
+              <el-form :model="form" size="small" status-icon label-position="left" label-width="100px"
+                class="demo-ruleForm">
                 <el-col :span="24">
                   <el-form-item label="标题">
                     <el-input v-model="form.title" placeholder="请输入标题"></el-input>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                <el-form-item label="开始时间">
-                  <el-date-picker
-                    style="width:100%"
-                    v-model="form.begdate"
-                    value-format="yyyy-MM-dd"
-                    type="date"
-                    placeholder="开始日期">
-                  </el-date-picker>                  
-                </el-form-item>
+                  <el-form-item label="开始时间">
+                    <el-date-picker style="width:100%" v-model="form.begdate" value-format="yyyy-MM-dd" type="date"
+                      placeholder="开始日期">
+                    </el-date-picker>
+                  </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="下架时间">
-                    <el-date-picker
-                      style="width:100%"
-                      v-model="form.enddate"
-                      value-format="yyyy-MM-dd"
-                      type="date"
+                    <el-date-picker style="width:100%" v-model="form.enddate" value-format="yyyy-MM-dd" type="date"
                       placeholder="下架日期">
                     </el-date-picker>
                   </el-form-item>
@@ -40,14 +34,17 @@
                 <el-col :span="12">
                   <el-form-item label="一级分类">
                     <el-select style="width:100%;margin-right:16px" size="small" v-model="form.class" clearable>
-                      <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
+                      <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid"
+                        :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="二级分类">
-                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid" clearable>
-                      <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname"></el-option>
+                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid"
+                      clearable>
+                      <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid"
+                        :label="item.classname"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
@@ -58,7 +55,8 @@
                 </el-col>
                 <el-col :span="24">
                   <el-form-item label="封面">
-                    <upload btntype="limage" :folderid="folderid" accept=".JPG,.PNG" :bindData="{ownertable:'SAT_COURSEWARE',ownerid:'',usetype:'cover'}"></upload>
+                    <upload btntype="limage" :folderid="folderid" accept=".JPG,.PNG"
+                      :bindData="{ ownertable: 'SAT_COURSEWARE', ownerid: '', usetype: 'cover' }"></upload>
                     <p class="info">注:建议上传图片大小210*120px像素,大小不超过2M,格式为JPG/PNG</p>
                   </el-form-item>
                 </el-col>
@@ -74,52 +72,58 @@
 <script>
 import upload from '@/components/upload/hw_obs_upload.vue'
 export default {
-  components:{
+  components: {
     upload
   },
-  data () {
+  data() {
     return {
-      options1:[],
-      options2:[],
-      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
-      form:{
+      options1: [],
+      options2: [],
+      folderid: JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      form: {
         "sat_coursewareid": 0,
         "title": "",
-        "sat_courseware_classid": '',
+        "sat_courseware_classid": '9999' + JSON.parse(sessionStorage.getItem('active_account')).userid,
         "notes": "",
         "canfiledownload": 1,
+<<<<<<< HEAD
         "begdate":(new Date()).toLocaleDateString(),
         "enddate":(new Date()).toLocaleDateString(),
         "tag":[]
+=======
+        "begdate": (new Date()).toLocaleDateString(),
+        "enddate": (new Date()).toLocaleDateString(),
+        "tag": []
+>>>>>>> f300e7fafb05f0e3c390e3c75e52ac3b2756ce27
       }
     }
   },
-  methods:{
-    async onSubmit () {
+  methods: {
+    async onSubmit() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.courseware",
         "method": "insertOrUpdate",
         "content": this.form
       })
-      res.code === 1?this.$router.replace({path:'/archives_scedit',query:{id:res.data.sat_coursewareid}}):''
+      res.code === 1 ? this.$router.replace({ path: '/archives_scedit', query: { id: res.data.sat_coursewareid } }) : ''
     },
     // 分类查询
-    async coursewareclass () {
+    async coursewareclass() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.coursewareclass",
         "method": "select",
         "content": {
-            "parentid": 0
+          "parentid": 0
         }
       })
       this.options1 = res.data
     },
-    handelSelectClick (val) {
+    handelSelectClick(val) {
       this.options2 = val.children
       this.params.content.where.sat_courseware_classid_2 = ''
     }
   },
-  mounted () {
+  mounted() {
     this.coursewareclass()
     this.onSubmit()
   }

+ 7 - 9
src/HManagement/archives_sc/list/modules/delete.vue

@@ -1,8 +1,6 @@
 <template>
   <div style="display:inline;margin:0 16px">
-    <el-popconfirm
-      title="确定删除当前通告吗?"
-      @confirm="deleteRow()">
+    <el-popconfirm title="确定删除当前通告吗?" @confirm="deleteRow()">
       <el-button slot="reference" size="small" type="text">删 除</el-button>
     </el-popconfirm>
   </div>
@@ -10,18 +8,18 @@
 
 <script>
 export default {
-  props:['data'],
-  methods:{
-    deleteRow () {
+  props: ['data'],
+  methods: {
+    deleteRow() {
       this.$api.requested({
         "classname": "webmanage.saletool.courseware.courseware",
         "method": "delete",
         "content": {
-          "sat_coursewareid":this.data.sat_coursewareid
+          "sat_coursewareid": [this.data.sat_coursewareid]
         }
-      }).then(res=>{
+      }).then(res => {
         this.tool.showMessage(res)
-        res.code === 1?this.$emit('onSuccess'):''
+        res.code === 1 ? this.$emit('onSuccess') : ''
       })
     },
   }

+ 80 - 72
src/HManagement/archives_sc/list/modules/edit.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
     <div v-if="!store.state.pageOnlyRead" class="container normal-panel normal-margin">
-      <el-button type="warning" size="small" icon="el-icon-s-claim" style="background:#FA8C16" @click="onSubmit" :loading="store.state.loading">保 存</el-button>
+      <el-button type="warning" size="small" icon="el-icon-s-claim" style="background:#FA8C16" @click="onSubmit"
+        :loading="store.state.loading">保 存</el-button>
     </div>
     <div style="overflow-x:hidden">
       <el-row :gutter="16">
@@ -10,45 +11,42 @@
           <div class="container normal-panel normal-margin">
             <p class="normal-title normal-margin" style="line-height:32px">课程设置</p>
             <el-row :gutter="20">
-              <el-form :model="form" :rules="rules" ref="form" size="small" status-icon label-position="left" label-width="100px" class="demo-ruleForm">
+              <el-form :model="form" :rules="rules" ref="form" size="small" status-icon label-position="left"
+                label-width="100px" class="demo-ruleForm">
                 <el-col :span="24">
                   <el-form-item label="标题" prop="title">
                     <el-input v-model="form.title" placeholder="请输入标题"></el-input>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                <el-form-item label="开始时间" prop="begdate">
-                  <el-date-picker
-                    style="width:100%"
-                    v-model="form.begdate"
-                    value-format="yyyy-MM-dd"
-                    type="date"
-                    placeholder="开始日期">
-                  </el-date-picker>                  
-                </el-form-item>
+                  <el-form-item label="开始时间" prop="begdate">
+                    <el-date-picker style="width:100%" v-model="form.begdate" value-format="yyyy-MM-dd" type="date"
+                      placeholder="开始日期">
+                    </el-date-picker>
+                  </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="下架时间" prop="enddate">
-                    <el-date-picker
-                      style="width:100%"
-                      v-model="form.enddate"
-                      value-format="yyyy-MM-dd"
-                      type="date"
+                    <el-date-picker style="width:100%" v-model="form.enddate" value-format="yyyy-MM-dd" type="date"
                       placeholder="下架日期">
                     </el-date-picker>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="一级分类" prop="sat_courseware_classid_1">
-                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid_1" clearable>
-                      <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
+                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid_1"
+                      clearable>
+                      <el-option v-for="item in options1" :key="item.index" :value="item.sat_courseware_classid"
+                        :label="item.classname" @click.native="handelSelectClick(item)"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="二级分类" prop="sat_courseware_classid_2">
-                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid_2" clearable>
-                      <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid" :label="item.classname"></el-option>
+                    <el-select style="width:100%;margin-right:16px" size="small" v-model="form.sat_courseware_classid_2"
+                      clearable>
+                      <el-option v-for="item in options2" :key="item.index" :value="item.sat_courseware_classid"
+                        :label="item.classname"></el-option>
                     </el-select>
                   </el-form-item>
                 </el-col>
@@ -59,8 +57,11 @@
                 </el-col>
                 <el-col :span="24">
                   <el-form-item label="封面" prop="cover">
-                    <previewImage v-if="form.cover" style="width:386px" :image="image" :deletebtn="true" @onSuccess="clearCover"></previewImage>
-                    <upload v-else btntype="limage" :folderid="folderid" accept=".JPG,.PNG" :bindData="{ownertable:'SAT_COURSEWARE',ownerid:form.sat_coursewareid,usetype:'cover'}" @onSuccess="onCoverSubmit"></upload>
+                    <previewImage v-if="form.cover" style="width:386px" :image="image" :deletebtn="true"
+                      @onSuccess="clearCover"></previewImage>
+                    <upload v-else btntype="limage" :folderid="folderid" accept=".JPG,.PNG"
+                      :bindData="{ ownertable: 'SAT_COURSEWARE', ownerid: form.sat_coursewareid, usetype: 'cover' }"
+                      @onSuccess="onCoverSubmit"></upload>
                     <p class="info">注:建议上传图片大小210*120px像素,大小不超过2M,格式为JPG/PNG</p>
                   </el-form-item>
                 </el-col>
@@ -70,12 +71,15 @@
           <!-- 附件列表 -->
           <div class="container normal-panel">
             <attachmentList :attinfos="form.attinfos" @onSuccess="selectDetail" :onlyread="store.state.pageOnlyRead">
-              <upload slot="upload" :folderid="folderid" :bindData="{ownertable:'SAT_COURSEWARE',ownerid:form.sat_coursewareid,usetype:'default'}" @onSuccess="onSubmit"></upload>
+              <upload slot="upload" :folderid="folderid"
+                :bindData="{ ownertable: 'SAT_COURSEWARE', ownerid: form.sat_coursewareid, usetype: 'default' }"
+                @onSuccess="onSubmit"></upload>
             </attachmentList>
           </div>
         </el-col>
         <el-col :span="12">
-          <scopeOfauth :defaultData="defaultData" appidname="sat_coursewareid" :dataid="$route.query.id" @onChecked="onChecked"></scopeOfauth>
+          <scopeOfauth :defaultData="defaultData" appidname="sat_coursewareid" :dataid="$route.query.id"
+            @onChecked="onChecked"></scopeOfauth>
         </el-col>
       </el-row>
     </div>
@@ -89,46 +93,46 @@ import attachmentList from '@/components/attachment_list/index.vue'
 import scopeOfauth from '@/components/scopeOfAuthority/index.vue'
 import store from '@/store'
 export default {
-  components:{
+  components: {
     upload,
     previewImage,
     attachmentList,
     scopeOfauth
   },
-  data () {
+  data() {
     return {
       store,
-      rules:{
+      rules: {
         title: [
           { required: true, message: '请输入课程名称', trigger: 'blur' },
         ],
         begdate: [
-          {  required: true, message: '请选择开始日期', trigger: 'change' }
+          { required: true, message: '请选择开始日期', trigger: 'change' }
         ],
         enddate: [
-          {  required: true, message: '请选择下架时间', trigger: 'change' }
+          { required: true, message: '请选择下架时间', trigger: 'change' }
         ],
         sat_courseware_classid_1: [
-          {  required: true, message: '请选择一级分类', trigger: 'change' }
+          { required: true, message: '请选择一级分类', trigger: 'change' }
         ],
         sat_courseware_classid_2: [
-          {  required: true, message: '请选择二级分类', trigger: 'change' }
+          { required: true, message: '请选择二级分类', trigger: 'change' }
         ],
-        cover:[
+        cover: [
           { required: true, message: '请上传封面', trigger: 'blur' },
         ],
       },
-      options1:[],
-      options2:[],
-      form:{},
-      image:{},
-      authData:{},
-      defaultData:{},
-      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      options1: [],
+      options2: [],
+      form: {},
+      image: {},
+      authData: {},
+      defaultData: {},
+      folderid: JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
     }
   },
-  methods:{
-    onSubmit () {
+  methods: {
+    onSubmit() {
       this.form.sat_courseware_classid = this.form.sat_courseware_classid_2
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false;
@@ -142,38 +146,45 @@ export default {
         this.insertCoursewareauth()
       });
     },
-    async selectDetail () {
+    async selectDetail() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.courseware",
         "method": "selectDetail",
         "content": {
-          "sat_coursewareid":this.$route.query.id
+          "sat_coursewareid": this.$route.query.id
         }
       })
-      this.form = Object.assign({},this.form,res.data)
-      this.options1.forEach(e=>{
-        e.sat_courseware_classid === res.data.sat_courseware_classid_1?this.options2 = e.children:''
+
+      //新增的数据 清空一下分类选择框
+      res.data.sat_courseware_classid_1 == 0 ? res.data.sat_courseware_classid_1 = "" : "";
+      res.data.sat_courseware_classid_2 == '9999' + JSON.parse(sessionStorage.getItem('active_account')).userid ? res.data.sat_courseware_classid_2 = "" : "";
+
+      this.form = Object.assign({}, this.form, res.data)
+
+      this.options1.forEach(e => {
+        e.sat_courseware_classid === res.data.sat_courseware_classid_1 ? this.options2 = e.children : ''
       })
+
       this.queryFileLink()
-      this.form.status === '发布'?store.state.pageOnlyRead = true:store.state.pageOnlyRead = false
+      this.form.status === '发布' ? store.state.pageOnlyRead = true : store.state.pageOnlyRead = false
     },
     // 分类查询
-    async coursewareclass () {
+    async coursewareclass() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.coursewareclass",
         "method": "select",
         "content": {
-            "parentid": 0
+          "parentid": 0
         }
       })
       this.options1 = res.data
     },
-    handelSelectClick (val) {
+    handelSelectClick(val) {
       this.options2 = val.children
       this.form.sat_courseware_classid_2 = ''
     },
     // 获取附件信息
-    async queryFileLink () {
+    async queryFileLink() {
       this.dialogEditVisible = true
       const res = await this.$api.requested({
         "classname": "system.attachment.Attachment",
@@ -181,40 +192,39 @@ export default {
         "content": {
           "ownertable": 'SAT_COURSEWARE',
           "ownerid": this.form.sat_coursewareid,
-          "usetype":'cover'//传空返回有所
+          "usetype": 'cover'//传空返回有所
         }
       })
-      res.data[0]?this.image = res.data[0]:this.image = {url:''}
+      res.data[0] ? this.image = res.data[0] : this.image = { url: '' }
     },
-    onCoverSubmit (res) {
+    onCoverSubmit(res) {
       this.form.cover = JSON.parse(res.attinfos).data[0].url
       this.image = JSON.parse(res.attinfos).data[0]
     },
     // 删除封面
-    clearCover () {
+    clearCover() {
       this.form.cover = null
       this.image = {}
     },
-
     // 获取保存授权范围数据
-    onChecked (param) {
+    onChecked(param) {
       this.authData = param
     },
     // 新增授权范围
-    async insertCoursewareauth () {
+    async insertCoursewareauth() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.coursewareauth",
         "method": "insert",
         "content": this.authData
       })
-      res.code === 0?this.$notify({
-        title:'失败',
-        message:res.data,
-        type:'error'
-      }):''
+      res.code === 0 ? this.$notify({
+        title: '失败',
+        message: res.data,
+        type: 'error'
+      }) : ''
     },
     // 查询授权信息
-    async query_auth () {
+    async query_auth() {
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.courseware.coursewareauth",
         "method": "selectList",
@@ -225,20 +235,18 @@ export default {
       this.defaultData = res.data
     },
   },
-  created () {
-    this.tool.checkAuth(this.$route.name,'data_analysis')?'':this.$router.go(-1)
+  created() {
+    this.tool.checkAuth(this.$route.name, 'data_analysis') ? '' : this.$router.go(-1);
   },
-  mounted () {
-    this.coursewareclass()
-    this.selectDetail()
-    this.query_auth()
+  mounted() {
+    this.coursewareclass();
+    this.selectDetail();
+    this.query_auth();
   }
 }
 
 </script>
 <style>
-
 </style>
 <style scoped>
-
 </style>

+ 19 - 33
src/SManagement/archives_sc/index.vue

@@ -1,17 +1,10 @@
 <template>
   <div class="normal-card">
     <div class="header-panl">
-      <div class="left">
-        <!--分类选择器-->
-        <category-select label="课程分类" @changeSelect="changeSelect" :selectList="selectList"
-          :prop="{value:'sat_courseware_classid',label:'classname'}" v-if="tool.checkAuth($route.name,'read')">
-        </category-select>
-        <!--搜索-->
-        <search @searchActive="searchActive" @clearData="clearData" v-if="tool.checkAuth($route.name,'read')"></search>
-      </div>
-      <!--最新最热切换-->
-      <hot-new-control :sortType='param.content.where.sorttype' @sortTypeChange="sortTypeChange"
-        v-if="tool.checkAuth($route.name,'read')"></hot-new-control>
+      <!-- 搜索及分类筛选 -->
+      <filterList @changeTypeId="changeTypeId" @startSearch="startSearch">
+          <hot-new-control @sortTypeChange="sortTypeChange"/>
+      </filterList>
     </div>
     <!--课件列表-->
     <div class="file" v-if="list.length != 0 && tool.checkAuth($route.name,'read')">
@@ -44,6 +37,8 @@ import HotNewControl from '@/components/hot-new-control/HotNewControl'
 import Pagination from '@/components/pagination/Pagination'
 import CategorySelect from '@/components/category-select/CategorySelect'
 import detail from '@/SManagement/archives_sc/archives_details/detail'
+import filterList from "@/components/filter-list/filterList"
+
 
 import FileType from '@/utils/matchingFeilType'
 export default {
@@ -54,6 +49,7 @@ export default {
         "classname": "saletool.courseware.courseware",
         "method": "selectList",
         "content": {
+          nocache: true,
           "pageNumber": 1,
           "pageSize": 12,
           "where": {
@@ -92,7 +88,8 @@ export default {
     Pagination,
     CategorySelect,
     detail,
-    search
+    search,
+    filterList
   },
   computed: {
   },
@@ -110,24 +107,6 @@ export default {
       this.list = res.data
       this.param.content.sort = res.sort
     },
-    //获取分类列表
-    async getSelectList () {
-      let res = await this.$api.requested(this.select)
-      this.selectList = res.data
-    },
-    //查询
-    async searchActive (result) {
-      this.param.content.where.condition = result
-      this.param.content.where.pageNumber = 1
-      let res = await this.$api.requested(this.param)
-      this.list = res.data
-      this.total = res.total
-    },
-    //清除查询
-    clearData () {
-      this.param.content.where.condition = ''
-      this.getFileData()
-    },
     sortTypeChange (name) {
       for (let i = 0; i < this.param.content.sort.length; i++) {
         this.param.content.sort[i].sorted = this.param.content.sort[i].sortname == name ? 1 : 0
@@ -148,10 +127,17 @@ export default {
         this.$refs.detail.isFileInfoPanlShow = true
       })
     },
-    changeSelect (id) {
+    /* 改变分类ID */
+    changeTypeId(id) {
+      this.param.content.where.sat_courseware_classid = id == 0 ? null : id;
       this.param.content.pageNumber = 1
-      this.param.content.where.sat_courseware_classid = id[id.length - 1];
-      this.getFileData()
+      this.getFileData();
+    },
+    /* 开始搜索 */
+    startSearch(value) {
+      this.param.content.where.condition = value;
+      this.param.content.pageNumber = 1
+      this.getFileData();
     }
   },
 };

+ 13 - 19
src/SManagement/orderclue/components/add.vue

@@ -17,7 +17,7 @@
           <el-cascader
             class="width-240"
             v-model="param.content.province"
-            :options="arealist"
+            :options="_arealist"
             @change="cascaderChange"
             ref="cascader">
           </el-cascader>
@@ -41,6 +41,7 @@
 </template>
 
 <script>
+import { log } from '@antv/g2plot/lib/utils';
 export default {
   name: 'add',
   data() {
@@ -74,7 +75,6 @@ export default {
           { min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' }
         ],
       },
-      arealist:[],
       areaSelectResult:''
     };
   },
@@ -83,40 +83,34 @@ export default {
       type:Function
     }
   },
+  inject:['arealist'],
   computed:{
+    _arealist() {
+      return this.arealist()
+    }
   },
   watch:{
   },
   created() {
-    this.query_arealist()
   },
   methods: {
-    async query_arealist() {
-      const res = await this.$api.requested({
-        "classname": "system.tools",
-        "method": "query_arealist",
-        "content": {
-        }
-      })
-      this.arealist = this.tool.createMenu(res.data)
-    },
     handleClose() {
       this.dialogVisible = false
     },
     addOrdercule() {
-      if(this.areaSelectResult && this.areaSelectResult.length > 1) {
-        this.param.content.province = this.areaSelectResult[0]
-        this.param.content.city = this.areaSelectResult[1]
-        this.param.content.county = this.areaSelectResult[2]
-      } else if (this.areaSelectResult.length == 1) {
-        this.param.content.province = this.areaSelectResult[0]
-      }
       this.$refs.ruleForm.validate( async val => {
           if( !val ) return this.$notify({
             title:'提示',
             message:'请按照要求填写信息',
             type:'warning'
           })
+          if(this.areaSelectResult && this.areaSelectResult.length > 1) {
+            this.param.content.province = this.areaSelectResult[0]
+            this.param.content.city = this.areaSelectResult[1]
+            this.param.content.county = this.areaSelectResult[2]
+          } else if (this.areaSelectResult.length == 1) {
+            this.param.content.province = this.areaSelectResult[0]
+          }
           let res = await this.$api.requested(this.param)
           this.tool.showMessage(res,() => {
             this.$refs.ruleForm.resetFields()

+ 3 - 11
src/SManagement/orderclue/components/edit.vue

@@ -80,7 +80,6 @@ export default {
           { min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' }
         ],
       },
-      arealist:[],
       areaSelectResult:[]
     };
   },
@@ -96,6 +95,9 @@ export default {
     },
     data: {
       type: Object
+    },
+    arealist: {
+      type: Array
     }
   },
   computed:{
@@ -123,18 +125,8 @@ export default {
     }
   },
   created() {
-    this.query_arealist()
   },
   methods: {
-    async query_arealist() {
-      const res = await this.$api.requested({
-        "classname": "system.tools",
-        "method": "query_arealist",
-        "content": {
-        }
-      })
-      this.arealist = this.tool.createMenu(res.data)
-    },
     handleClose() {
       this.dialogVisible = false
     },

+ 2 - 2
src/SManagement/orderclue/components/list.vue

@@ -59,9 +59,9 @@ import search from '@/components/search/index'
 import table1 from '@/components/table/index'
 import { log } from '@antv/g2plot/lib/utils'
 import Header from '@/SManagement/archives_upload/components/Header'
-import add from '@/SManagement/orderclue/components/add'
 import move from '@/SManagement/orderclue/components/move'
 import exportBtn from '@/SManagement/orderclue/components/export'
+import add from '@/SManagement/orderclue/components/add'
 
 export default {
   name: 'list',
@@ -97,7 +97,7 @@ export default {
       }
     };
   },
-  components: { search, Header, add, exportBtn, table1, move },
+  components: { search, Header , exportBtn, table1, move , add },
   computed: {
   },
   watch: {

+ 3 - 16
src/SManagement/orderclue/components/move.vue

@@ -31,7 +31,6 @@ export default {
           "sa_agent_hrid": ''
         }
       },
-      teamList:[]
     };
   },
   props: {
@@ -43,6 +42,9 @@ export default {
     },
     updataList: {
       type:Function
+    },
+    teamList: {
+      type:Array
     }
   },
   computed: {
@@ -51,23 +53,8 @@ export default {
 
   },
   created() {
-    this.getTeamList()
   },
   methods: {
-    async getTeamList () {
-      let res = await this.$api.requested({
-        "classname": "sale.team.team",
-        "method": "query_teamList",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 99999,
-          "where": {
-              "condition": ""
-          }
-        }
-      })
-      this.teamList = res.data
-    },
     handleClose () {
       this.dialogVisible = false
     },

+ 40 - 2
src/SManagement/orderclue/index.vue

@@ -6,7 +6,8 @@
       </template>
       <template v-slot:edit="scope">
           <edit :data="scope.data" 
-                @updataList="updataList" 
+                @updataList="updataList"
+                :arealist="arealist" 
                 v-if="scope.data.data.status == '待跟进' || scope.data.data.status == '跟进中' && tool.checkAuth($route.name,'update')"></edit>
       </template>
       <template v-slot:goUp="scope">
@@ -17,6 +18,7 @@
       <template v-slot:move="scope">
         <move :data="[scope.data.data.sat_orderclueid]" 
               @updataList="updataList" 
+              :teamList="teamList"
               v-if="scope.data.data.status == '待跟进' || scope.data.data.status == '跟进中' && tool.checkAuth($route.name,'handleMove')"></move>
       </template>
     </list>
@@ -31,17 +33,29 @@ import edit from '@/SManagement/orderclue/components/edit'
 import follow from '@/SManagement/orderclue/components/follow'
 import move from '@/SManagement/orderclue/components/move'
 import exportBtn from '@/SManagement/orderclue/components/export'
+
 export default {
   name: 'index',
   data() {
     return {
+      teamList:[],
+      arealist:[]
     };
   },
-  components:{ Header , list , add , exportBtn , edit , follow , move },
+  provide() {
+    return {
+      arealist:() => this.arealist
+    }
+  },
+  components:{ Header , list , add , exportBtn , edit , follow , move , add },
   computed:{
   },
   watch:{
   },
+  created() {
+    this.getTeamList()
+    this.query_arealist()
+  },
   methods: {
     detail(data) {
       this.$router.push({
@@ -55,6 +69,30 @@ export default {
       this.$refs.list.param.content.pageNumber = 1
       this.$refs.list.getList()
     },
+    async getTeamList () {
+      let res = await this.$api.requested({
+        "classname": "sale.team.team",
+        "method": "query_teamList",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 99999,
+          "where": {
+              "condition": ""
+          }
+        }
+      })
+      this.teamList = res.data
+    },
+    async query_arealist() {
+      const res = await this.$api.requested({
+        "classname": "system.tools",
+        "method": "query_arealist",
+        "content": {
+        }
+      })
+      this.arealist2 = this.tool.createMenu(res.data)
+      this.arealist = this.tool.createMenu(res.data)
+    }
   },
 };
 </script>

+ 30 - 24
src/SManagement/submitedit_details/components/SubmiteditAction.vue

@@ -53,9 +53,10 @@ export default {
       textarea2: '',
       //上传模板
       upload_panl: 0,
+      disabled:window.sessionStorage.getItem('history') != 1
     };
   },
-  props: ['detailData', 'disabled', 'editData'],
+  props: ['detailData', 'editData'],
   components: {
     FileItem,
     upload
@@ -103,7 +104,6 @@ export default {
         }
       }
       let res = await this.$api.requested(param)
-      this.tool.showMessage(res)
     },
     async save () {
       //新增
@@ -133,7 +133,7 @@ export default {
                 "sat_submiteditid": "0"
               }
             }
-            let res = await this.$api.requested({
+            this.$api.requested({
               "classname": "saletool.submitedit.submitedit",
               "method": "sub_submitdetailed",
               "content": {
@@ -141,9 +141,14 @@ export default {
                 "sat_submiteditmodelid": res.data.sat_submiteditmodelid,
                 "sat_submiteditid": res.data.sat_submiteditid
               }
-            })
-            this.tool.showMessage(res, () => {
-              this.$parent.getDetailData()
+            }).then( res => {
+              if(res.code == 1) {
+                this.$parent.getDetailData()
+                if(this.$route.query.type != 'more') {
+                  this.disabled = false
+                  window.sessionStorage.setItem('history',1)
+                }
+              }
             })
           })
         })
@@ -161,24 +166,25 @@ export default {
               "sat_submiteditid": this.upload_panl.sat_submiteditid
             }
           }
-          let res = await this.$api.requested(param2).then(res => {
-            this.tool.showMessage(res,() => {
-              this.upload_panl.status = '发布'
-              this.upload_panl.attinfos = null
-              this.param = {
-                "classname": "saletool.submitedit.submitedit",
-                "method": "insertorupdate",
-                "content": {
-                  "sat_submiteditmodelid": "",
-                  "content": "",
-                  "sat_submiteditid": "0"
-                }
-              },
-                this.isFileInfoPanlShow = false
-              this.$parent.getDetailData()
-            })
-
-          })
+          let res = await this.$api.requested(param2)
+          if(res.code != 1) return console.log('错误');
+          this.upload_panl.status = '发布'
+          this.upload_panl.attinfos = null
+          this.param = {
+            "classname": "saletool.submitedit.submitedit",
+            "method": "insertorupdate",
+            "content": {
+              "sat_submiteditmodelid": "",
+              "content": "",
+              "sat_submiteditid": "0"
+            }
+          }
+          if(this.$route.query.type != 'more') {
+            this.disabled = false
+            window.sessionStorage.setItem('history',1)
+          }
+          this.isFileInfoPanlShow = false
+          this.$parent.getDetailData()
         })
       }
 

+ 3 - 2
src/SManagement/submitedit_details/index.vue

@@ -6,7 +6,7 @@
                     ref="submitAction" 
                     :detailData="detailData" 
                     :editData="editData" 
-                    :disabled="$route.query.history != 1"
+                    :disabled.sync="disabled"
                     v-if="tool.checkAuth($route.name,'insert')"></submit-action>
       <img src="@/assets/refresh.png" alt="" style="cursor:pointer" @click="$router.go(0)">
     </div>
@@ -62,7 +62,8 @@ export default {
       //编辑数据
       editData:[],
       currentIndex: 1,
-      pageSize:6
+      pageSize:6,
+      disabled:this.$route.query.history != 1
     };
   },
   components: {

+ 7 - 2
src/SManagement/submitedit_one/components/list.vue

@@ -44,11 +44,11 @@ export default {
   methods: {
     itemClick (id,history) {
       window.sessionStorage.setItem('currentPath',this.$route.path)
+      window.sessionStorage.setItem('history',history)
       this.$router.push({
         path: '/submiteditmag_detail',
         query: {
           id:id,
-          history:history,
           type:this.type
         }
       })
@@ -153,5 +153,10 @@ export default {
   color: #999999;
   background: #EEEEEE;
 }
-
+/deep/.el-empty {
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  transform: translate(-50%, -50%);
+}
 </style>

+ 129 - 0
src/components/filter-list/filterList.vue

@@ -0,0 +1,129 @@
+<template>
+    <div class="flex-align-center">
+        <div>
+            <p>一级分类:</p>
+            <el-select clear="select" v-model="activeClass1" @clear="clearClass1" size="small" clearable>
+                <el-option v-for="item in selectList" :key="item.rowindex" :value="item.sat_courseware_classid"
+                    :label="item.classname" @click.native="handleChange(item)" />
+            </el-select>
+        </div>
+        <div>
+            <p>二级分类:</p>
+            <el-select clear="select" v-model="activeClass2" size="small" @clear="clearClass2" clearable>
+                <el-option v-for="item in childrens" :key="item.rowindex" :value="item.sat_courseware_classid"
+                    :label="item.classname" @click.native="handleChange(item)" />
+            </el-select>
+        </div>
+        <div>
+            <p>搜索:</p>
+            <el-input style="width:200px" size="small" placeholder="请输入查询内容" @clear="changeSearchContent"
+                @keyup.native.enter="changeSearchContent" v-model="condition" prefix-icon="el-icon-search" clearable />
+        </div>
+        <div style="fisplay:flex;flex:1;flex-direction: row-reverse;max-width:100000px">
+            <slot />
+        </div>
+    </div>
+</template>
+
+<script>
+import { log } from '@antv/g2plot/lib/utils'
+export default {
+    name: "filterList",
+    mounted() {
+        this.getSelectList()
+    },
+    props: ["changeTypeId", "startSearch"],
+    data() {
+        return {
+            selectList: [],//分类列表
+            childrens: [],//子分类列表
+            activeClass1: "",//选择分类1
+            activeClass2: "",//选择分类2
+            class1id: "",
+            class2id: "",
+            returnId: 0,//最终返回id
+            condition: "",//搜索内容
+        }
+    },
+    methods: {
+        /* 获取分类列表 */
+        getSelectList(i = 0) {
+            this.$api.requested({
+                "accesstoken": "a642ccb6357ea170f2bc875694b5b902",
+                "classname": "saletool.courseware.courseware",
+                "method": "selectMenu",
+                "content": {
+
+                }
+            }).then(res => {
+                console.log(res);
+                
+                if (res.msg != '成功') return i < 5 ? this.getSelectList(i + 1) : this.$message.error(res.msg);
+                this.selectList = res.data;
+            })
+        },
+        /* 选择分类 */
+        handleChange(item) {
+            console.log(item);
+            
+            if (item.children) {
+                this.childrens = item.children;
+                this.activeClass2 = "";
+                this.class1id = item.sat_courseware_classid;
+            } else {
+                this.class2id = item.sat_courseware_classid;
+            }
+            this.returnId = item.sat_courseware_classid;
+            this.setId();
+        },
+        clearClass1() {
+            this.childrens = [];
+            this.activeClass1 = "";
+            this.activeClass2 = "";
+            this.class1id = "";
+            this.class2id = "";
+            this.returnId = 0;
+            this.setId();
+        },
+        clearClass2() {
+            this.class2id = "";
+            this.activeClass2 = "";
+            this.returnId = this.class1id ? this.class1id : 0;
+            this.setId();
+        },
+        /* 返回分类ID */
+        setId() {
+            this.$emit("changeTypeId", this.returnId)
+        },
+        /* 开始搜索 */
+        changeSearchContent() {
+            this.$emit("startSearch", this.condition.trim())
+        }
+    }
+}
+</script>
+
+<style scoped>
+.flex-align-center {
+    width: 100%;
+    padding-bottom: 15px;
+}
+
+.flex-align-center>div {
+    flex-shrink: 0;
+    display: flex;
+    align-items: center;
+    max-width: 350px;
+}
+
+.flex-align-center>div>p {
+    font-size: 14px;
+    margin: 0 10px;
+    max-width: 80px;
+}
+
+.select {
+    width: 120px;
+    margin-right: 16px;
+}
+</style>

+ 1 - 1
src/components/table/index.vue

@@ -5,7 +5,7 @@
         type="selection"
         width="55" @handleSelectionChange="handleSelectionChange" v-if="checkbox" :selectable="isCheck">
       </el-table-column>
-      <el-table-column show-overflow-tooltip v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width">
+      <el-table-column :show-overflow-tooltip="col.title == '来源' || col.title == '地址' || col.title == '备注'" v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width">
         <template slot-scope="scope">
           <!-- 自定义表格显示内容 -->
           <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>

+ 0 - 6
src/views/mediaStock/modules/list.vue

@@ -87,12 +87,6 @@ export default {
         e.ischeck = false
       })
       this.list = res.data
-      this.list.forEach(item => {
-        console.log(item.document,item.url);
-        
-      })
-      console.log(this.list);
-      
       this.total = res.total
       this.currentPage = res.pageNumber
       this.sort = res.sort

+ 6 - 14
src/views/message/components/list.vue

@@ -6,7 +6,7 @@
           <p class="title">{{item.title}}</p>
           <p class="message">{{item.message}}</p>
           <div class="info">
-            <div class="tag">{{item.objectname}}</div>
+            <div class="tag">{{item.type}}</div>
             <p class="time">{{item.createdate}}</p>
           </div>
         </div>
@@ -16,7 +16,7 @@
         </div>
       </div>
     </div>
-    <el-dialog
+    <!-- <el-dialog
       title="提示"
       :visible.sync="dialogVisible"
       width="960px"
@@ -25,7 +25,7 @@
       <span slot="footer" class="dialog-footer">
         <el-button @click="handleClose()">关闭</el-button>
       </span>
-    </el-dialog>
+    </el-dialog> -->
   </div>
   <el-empty description="暂无数据" v-else></el-empty>
 </template>
@@ -50,16 +50,8 @@ export default {
       this.dialogVisible = false
     },
     async detailClick(item) {
-      let result = await this.$api.requested({
-        "classname": "system.message.Message",
-        "method": "readMessage",
-        "content": {
-            "messageid":item.messageid
-        }
-      })
-      item.isread = 1
-      this.message = item.message
-      this.dialogVisible = true
+      
+      this.$emit('messageItemClick',item)
     }
   },
 };
@@ -75,7 +67,7 @@ export default {
   margin-top: 10px;
 }
 .list .item-box {
-  padding: 0 30px;
+  padding: 0 16px;
   cursor: pointer;
 }
 .list .item-box:hover {

+ 85 - 19
src/views/message/index.vue

@@ -1,15 +1,33 @@
 <template>
   <div class="message">
-    <div class="select">
-      <div @click="selectFun('系统')"
-        :style="currentItem==0 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">系统消息</div>
-      <div @click="selectFun('应用')"
-        :style="currentItem==1 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">应用消息</div>
-    </div>
-    <list :list="list"></list>
-    <pagination :total="total" :pageSize="param.content.pageSize" :currentPage="param.content.pageNumber"
-      @pageChange="pageChange">
-    </pagination>
+    <el-row>
+      <el-col :span="12">
+        <div class="left">
+          <div class="select">
+            <div @click="selectFun('系统')"
+              :style="currentItem==0 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">系统消息</div>
+            <div @click="selectFun('应用')"
+              :style="currentItem==1 ? 'background:#3874F6;color:#ffffff' : 'border:1px solid #cccccc'">应用消息</div>
+          </div>
+          <list :list="list" @messageItemClick="messageItemClick"></list>
+          <pagination :total="total" :pageSize="param.content.pageSize" :currentPage="param.content.pageNumber"
+            @pageChange="pageChange">
+          </pagination>
+        </div>
+      </el-col>
+      <el-col :span="12">
+        <div class="right">
+          <p class="title">{{message.title}}</p>
+          <p class="info">
+            <span>发布于:{{message.createdate}} | {{message.type}}</span>
+          </p>
+          <div class="content-txt">
+            <p class="txt">{{message.message}}</p>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+
   </div>
 </template>
 
@@ -27,17 +45,18 @@ export default {
         "classname": "system.message.Message",
         "method": "queryMessage",
         "content": {
-          "nocache": true,
+          "nocache": true,
           "pageNumber": 1,
           "pageSize": 10,
           "type": ''
         }
       },
-      list: [],
-      total:0
+      list: '',
+      total: 0,
+      message:''
     };
   },
-  components: { list ,pagination },
+  components: { list, pagination },
   computed: {
   },
   watch: {
@@ -50,16 +69,31 @@ export default {
       this.param.content.type = this.currentItem == 0 ? '系统' : '应用'
       let res = await this.$api.requested(this.param)
       this.list = res.data
+      this.messageItemClick(this.list[0])
       this.total = res.total
+      console.log(this.list);
+      
     },
     selectFun (data) {
       this.param.content.pageNumber = 1
       this.currentItem = data == '系统' ? 0 : 1
       this.getMessageList()
     },
-    pageChange(n) {
+    pageChange (n) {
       this.param.content.pageNumber = n
       this.getMessageList()
+    },
+    async messageItemClick(data) {
+      let res = await this.$api.requested({
+        "classname": "system.message.Message",
+        "method": "readMessage",
+        "content": {
+            "nocache":true,
+            "messageid":data.messageid
+        }
+      })
+      data.isread = 1
+      this.message = res.data
     }
   },
 };
@@ -70,13 +104,18 @@ export default {
   box-sizing: border-box;
 }
 .message {
-  width: 1200px;
+  width: 100%;
   min-height: 100%;
   margin: 0 auto;
-  background: #ffffff;
-  padding: 30px 0 60px 0;
   position: relative;
 }
+.message .left {
+  position: relative;
+  padding: 20px 0 60px 0;
+  box-shadow: 1px 0px 0px 1px #DDDDDD;
+  border-radius: 4px 4px 4px 4px;
+  background: #ffffff;
+}
 .message .select {
   width: 200px;
   height: 36px;
@@ -85,7 +124,7 @@ export default {
   justify-content: space-between;
   line-height: 36px;
   font-size: 14px;
-  margin-left: 30px;
+  margin-left: 16px;
 }
 .message .select div {
   width: 50%;
@@ -102,6 +141,33 @@ export default {
   border-top-right-radius: 4px;
   border-bottom-right-radius: 4px;
 }
+.message .right {
+  padding: 20px 16px;
+}
+.message .right .title {
+  font-size: 16px;
+  font-weight: bold;
+  color: #333333;
+}
+.message .right .info {
+  font-size: 12px;
+  font-weight: 400;
+  color: #333333;
+  margin: 16px 0;
+}
+.message .right .content-txt {
+  width: 100%;
+  padding: 20px 16px;
+  font-size: 14px;
+  font-weight: 400;
+  background: #ffffff;
+}
+.message .right .content-txt p:first-child {
+  color: #666666;
+}
+/* .message .right .content-txt p:last-child {
+  color: #3874F6;
+} */
 /deep/.el-pagination {
   position: absolute;
   right: 16px;