소스 검색

Merge branch 'online' into fine_music_score

mo 2 년 전
부모
커밋
213a245e6a
64개의 변경된 파일241개의 추가작업 그리고 59개의 파일을 삭제
  1. 80 0
      Jenkinsfile
  2. 1 0
      build/build.js
  3. 1 1
      dist/index.html
  4. 0 0
      dist/static/css/app.0546574b4e018f5e10655a663a00dc4b.css
  5. 0 0
      dist/static/css/app.0546574b4e018f5e10655a663a00dc4b.css.map
  6. 0 0
      dist/static/css/app.c338b69a435e2c6d4af13d812d65d5d1.css
  7. 0 0
      dist/static/css/app.c338b69a435e2c6d4af13d812d65d5d1.css.map
  8. BIN
      dist/static/fonts/element-icons.535877f.woff
  9. BIN
      dist/static/fonts/element-icons.6f0a763.ttf
  10. BIN
      dist/static/fonts/element-icons.732389d.ttf
  11. 0 0
      dist/static/js/0.8560f03fef93b96f687b.js
  12. 0 0
      dist/static/js/0.8560f03fef93b96f687b.js.map
  13. 0 0
      dist/static/js/0.bc14ceccb66986f69c22.js
  14. 0 0
      dist/static/js/0.bc14ceccb66986f69c22.js.map
  15. 0 0
      dist/static/js/1.750fa040bdf06283a979.js
  16. 0 0
      dist/static/js/1.750fa040bdf06283a979.js.map
  17. 0 0
      dist/static/js/1.dc12505dfd3618dc403c.js
  18. 0 0
      dist/static/js/1.dc12505dfd3618dc403c.js.map
  19. 0 0
      dist/static/js/10.95811e13a2d3b3a0e181.js
  20. 0 0
      dist/static/js/10.95811e13a2d3b3a0e181.js.map
  21. 0 0
      dist/static/js/10.d240d4b1b49382283d43.js
  22. 0 0
      dist/static/js/10.d240d4b1b49382283d43.js.map
  23. 0 0
      dist/static/js/2.e55544fc4b922a4a39fb.js
  24. 0 0
      dist/static/js/2.e55544fc4b922a4a39fb.js.map
  25. 0 0
      dist/static/js/26.cf43a3c53c70337feb89.js
  26. 0 0
      dist/static/js/26.cf43a3c53c70337feb89.js.map
  27. 0 0
      dist/static/js/27.8798aca79f5b6761bab7.js
  28. 0 0
      dist/static/js/27.8798aca79f5b6761bab7.js.map
  29. 0 0
      dist/static/js/27.e30bb8890ece1f994cc3.js
  30. 0 0
      dist/static/js/27.e30bb8890ece1f994cc3.js.map
  31. 0 0
      dist/static/js/3.6e4ddf4c95d1663b6e36.js.map
  32. 0 0
      dist/static/js/3.7a34bc11867182eb93de.js
  33. 0 0
      dist/static/js/3.7a34bc11867182eb93de.js.map
  34. 0 0
      dist/static/js/33.85c901641f8c34c58d86.js
  35. 0 0
      dist/static/js/33.85c901641f8c34c58d86.js.map
  36. 0 0
      dist/static/js/4.8ff49c77f17a61d5d723.js
  37. 0 0
      dist/static/js/4.8ff49c77f17a61d5d723.js.map
  38. 0 0
      dist/static/js/4.c44f6c96bf4a1c31d2ce.js.map
  39. 0 0
      dist/static/js/5.b802bd535c3c9c9a1760.js
  40. 0 0
      dist/static/js/5.b802bd535c3c9c9a1760.js.map
  41. 0 0
      dist/static/js/5.bdd1e9fc80ce4df3b415.js.map
  42. 0 0
      dist/static/js/7.7c039b1ebbb18ac96264.js
  43. 0 0
      dist/static/js/7.7c039b1ebbb18ac96264.js.map
  44. 0 0
      dist/static/js/7.c4fb19a2121968df6d99.js
  45. 0 0
      dist/static/js/7.c4fb19a2121968df6d99.js.map
  46. 0 0
      dist/static/js/8.a5579369bc5cf15abbdf.js
  47. 0 0
      dist/static/js/8.a5579369bc5cf15abbdf.js.map
  48. 0 0
      dist/static/js/9.fb66fa235c948e0d4216.js
  49. 0 0
      dist/static/js/9.fb66fa235c948e0d4216.js.map
  50. 0 0
      dist/static/js/app.23e332c41e3771162b26.js
  51. 0 0
      dist/static/js/app.23e332c41e3771162b26.js.map
  52. 0 0
      dist/static/js/manifest.05373e1ec4f249d75501.js
  53. 0 0
      dist/static/js/manifest.05373e1ec4f249d75501.js.map
  54. 0 0
      dist/static/js/vendor.07015f4555c6e302e551.js
  55. 0 0
      dist/static/js/vendor.3a8d2e3245c66a69b2a4.js
  56. 0 0
      dist/static/js/vendor.3a8d2e3245c66a69b2a4.js.map
  57. 33 33
      package-lock.json
  58. 1 1
      package.json
  59. 19 0
      src/api/order.js
  60. 6 3
      src/views/oms/order/index.vue
  61. 89 12
      src/views/oms/order/orderDetail.vue
  62. 5 2
      src/views/pms/product/components/ProductAttrDetail.vue
  63. 5 7
      src/views/pms/product/components/ProductInfoDetail.vue
  64. 1 0
      src/views/pms/product/index.vue

+ 80 - 0
Jenkinsfile

@@ -0,0 +1,80 @@
+pipeline {
+    agent any
+
+    environment {
+       BUILD_USER = ""
+    }
+
+    stages {
+        
+        stage('build param') {
+            steps {
+                wrap([$class: 'BuildUser']) {
+                    script {
+                        BUILD_USER = "${env.BUILD_USER}"
+                    }           
+                }
+                echo '${BUILD_USER}'
+            }
+        }
+
+        stage('build job') {
+            steps {
+                sh 'node -v'
+                sh 'npm install && npm run build'
+                sh 'tar -zcf dist.tar.gz dist/'
+            }
+        }
+
+        stage('deploy job') {
+            steps {
+                sshPublisher(publishers: [sshPublisherDesc(configName: 'ECS-CooleShow-47.114.1.200-dev', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'cd /mnt/datadisk/www/cooleshow/colexiu-mall-admin && rm -rf dist/ && tar -zxf *.tar.gz && rm *.tar.gz', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/mnt/datadisk/www/cooleshow/colexiu-mall-admin', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
+            }
+        }
+
+        stage('clean job') {
+            steps {
+                sh 'rm dist.tar.gz'
+            }
+        }
+    }
+
+    post {
+        
+        success {
+            dingtalk (
+                robot: "a346e21b-706e-4881-8e3b-6c48d16d0c3b",
+                type:'ACTION_CARD',
+                atAll: false,
+                title: "构建成功:${env.JOB_NAME}",
+                //messageUrl: 'xxxx',
+                text: [
+                    "### [${env.JOB_NAME}](${env.JOB_URL}) ",
+                    '---',
+                    "- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
+                    '- 状态:<font color=#00CD00 >成功</font>',
+                    "- 持续时间:${currentBuild.durationString}".split("and counting")[0],
+                    "- 执行人:${BUILD_USER}",
+                ]
+            )
+        }
+
+        failure{
+            dingtalk (
+                robot: "a346e21b-706e-4881-8e3b-6c48d16d0c3b",
+                type:'ACTION_CARD',
+                atAll: false,
+                title: "构建失败:${env.JOB_NAME}",
+                //messageUrl: 'xxxx',
+                text: [
+                    "### [${env.JOB_NAME}](${env.JOB_URL}) ",
+                    '---',
+                    "- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
+                    '- 状态:<font color=#EE0000 >失败</font>',
+                    "- 持续时间:${currentBuild.durationString}".split("and counting")[0],
+                    "- 执行人:${BUILD_USER}",
+                ]
+            )
+        }
+    }
+}

+ 1 - 0
build/build.js

@@ -37,5 +37,6 @@ rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
       '  Tip: built files are meant to be served over an HTTP server.\n' +
       '  Opening index.html over file:// won\'t work.\n'
     ))
+    process.exit(0)
   })
 })

+ 1 - 1
dist/index.html

@@ -7,4 +7,4 @@
         hm.src = "https://hm.baidu.com/hm.js?8b02a318fde5831da10426656a43d03c";
         var s = document.getElementsByTagName("script")[0];
         s.parentNode.insertBefore(hm, s);
-      })();</script><script src=./static/ks3jssdk/plupload.full.min.js></script><script src=./static/ks3jssdk/ks3jssdk.min.js></script><link href=./static/css/app.c338b69a435e2c6d4af13d812d65d5d1.css rel=stylesheet></head><body><script src=https://unpkg.com/tinymce@4.7.5/tinymce.min.js></script><div id=app></div><script type=text/javascript src=./static/js/manifest.72de32c79538546085d1.js></script><script type=text/javascript src=./static/js/vendor.07015f4555c6e302e551.js></script><script type=text/javascript src=./static/js/app.bff9700db634556c8b21.js></script></body></html>
+      })();</script><script src=./static/ks3jssdk/plupload.full.min.js></script><script src=./static/ks3jssdk/ks3jssdk.min.js></script><link href=./static/css/app.0546574b4e018f5e10655a663a00dc4b.css rel=stylesheet></head><body><script src=https://unpkg.com/tinymce@4.7.5/tinymce.min.js></script><div id=app></div><script type=text/javascript src=./static/js/manifest.05373e1ec4f249d75501.js></script><script type=text/javascript src=./static/js/vendor.3a8d2e3245c66a69b2a4.js></script><script type=text/javascript src=./static/js/app.23e332c41e3771162b26.js></script></body></html>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/app.0546574b4e018f5e10655a663a00dc4b.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/app.0546574b4e018f5e10655a663a00dc4b.css.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/app.c338b69a435e2c6d4af13d812d65d5d1.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/css/app.c338b69a435e2c6d4af13d812d65d5d1.css.map


BIN
dist/static/fonts/element-icons.535877f.woff


BIN
dist/static/fonts/element-icons.6f0a763.ttf


BIN
dist/static/fonts/element-icons.732389d.ttf


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/0.8560f03fef93b96f687b.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/0.8560f03fef93b96f687b.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/0.bc14ceccb66986f69c22.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/0.bc14ceccb66986f69c22.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/1.750fa040bdf06283a979.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/1.750fa040bdf06283a979.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/1.dc12505dfd3618dc403c.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/1.dc12505dfd3618dc403c.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/10.95811e13a2d3b3a0e181.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/10.95811e13a2d3b3a0e181.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/10.d240d4b1b49382283d43.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/10.d240d4b1b49382283d43.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/2.e55544fc4b922a4a39fb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/2.e55544fc4b922a4a39fb.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/26.cf43a3c53c70337feb89.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/26.cf43a3c53c70337feb89.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/27.8798aca79f5b6761bab7.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/27.8798aca79f5b6761bab7.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/27.e30bb8890ece1f994cc3.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/27.e30bb8890ece1f994cc3.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/3.6e4ddf4c95d1663b6e36.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/3.7a34bc11867182eb93de.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/3.7a34bc11867182eb93de.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/33.85c901641f8c34c58d86.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/33.85c901641f8c34c58d86.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/4.8ff49c77f17a61d5d723.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/4.8ff49c77f17a61d5d723.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/4.c44f6c96bf4a1c31d2ce.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/5.b802bd535c3c9c9a1760.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/5.b802bd535c3c9c9a1760.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/5.bdd1e9fc80ce4df3b415.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/7.7c039b1ebbb18ac96264.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/7.7c039b1ebbb18ac96264.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/7.c4fb19a2121968df6d99.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/7.c4fb19a2121968df6d99.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/8.a5579369bc5cf15abbdf.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/8.a5579369bc5cf15abbdf.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/9.fb66fa235c948e0d4216.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/9.fb66fa235c948e0d4216.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/app.23e332c41e3771162b26.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/app.23e332c41e3771162b26.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/manifest.05373e1ec4f249d75501.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/manifest.05373e1ec4f249d75501.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/vendor.07015f4555c6e302e551.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/vendor.3a8d2e3245c66a69b2a4.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
dist/static/js/vendor.3a8d2e3245c66a69b2a4.js.map


+ 33 - 33
package-lock.json

@@ -12,7 +12,7 @@
         "clean-deep": "^3.4.0",
         "dayjs": "^1.11.2",
         "echarts": "^4.2.0-rc.2",
-        "element-ui": "^2.3.7",
+        "element-ui": "^2.13.2",
         "js-cookie": "^2.2.0",
         "normalize.css": "^8.0.0",
         "nprogress": "^0.2.0",
@@ -359,9 +359,9 @@
       "dev": true
     },
     "node_modules/async-validator": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.2.tgz",
-      "integrity": "sha1-t3WXIm6WJC+NUxwNRq4pX2JCK6Q=",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
       "dependencies": {
         "babel-runtime": "6.x"
       }
@@ -2820,7 +2820,7 @@
     },
     "node_modules/deepmerge": {
       "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
       "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
       "engines": {
         "node": ">=0.10.0"
@@ -3179,9 +3179,9 @@
       "dev": true
     },
     "node_modules/element-ui": {
-      "version": "2.3.7",
-      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.3.7.tgz",
-      "integrity": "sha512-C0ZOz7lAgg+ST3dNhIGJXEJ7/ObdKioVo/YwiYq0HIdvwUmp9fEOGVL39q2my+WUxPqzrqG1uKE1r59npgSN9A==",
+      "version": "2.13.2",
+      "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.13.2.tgz",
+      "integrity": "sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ==",
       "dependencies": {
         "async-validator": "~1.8.1",
         "babel-helper-vue-jsx-merge-props": "^2.0.0",
@@ -3191,7 +3191,7 @@
         "throttle-debounce": "^1.0.1"
       },
       "peerDependencies": {
-        "vue": "^2.5.2"
+        "vue": "^2.5.17"
       }
     },
     "node_modules/elliptic": {
@@ -7020,8 +7020,8 @@
     },
     "node_modules/normalize-wheel": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
-      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
+      "resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
     },
     "node_modules/normalize.css": {
       "version": "8.0.0",
@@ -10877,9 +10877,9 @@
       "dev": true
     },
     "node_modules/resize-observer-polyfill": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz",
-      "integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg=="
+      "version": "1.5.1",
+      "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
     },
     "node_modules/resolve": {
       "version": "1.22.1",
@@ -12339,11 +12339,11 @@
       }
     },
     "node_modules/throttle-debounce": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.0.1.tgz",
-      "integrity": "sha1-2tD+Ew+drzcZ/eoz3Dao5rp/MLU=",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
       "engines": {
-        "node": ">=0.10.0"
+        "node": ">=4"
       }
     },
     "node_modules/through2": {
@@ -13999,9 +13999,9 @@
       "dev": true
     },
     "async-validator": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.2.tgz",
-      "integrity": "sha1-t3WXIm6WJC+NUxwNRq4pX2JCK6Q=",
+      "version": "1.8.5",
+      "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
       "requires": {
         "babel-runtime": "6.x"
       }
@@ -16217,7 +16217,7 @@
     },
     "deepmerge": {
       "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
       "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
     },
     "define-properties": {
@@ -16535,9 +16535,9 @@
       "dev": true
     },
     "element-ui": {
-      "version": "2.3.7",
-      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.3.7.tgz",
-      "integrity": "sha512-C0ZOz7lAgg+ST3dNhIGJXEJ7/ObdKioVo/YwiYq0HIdvwUmp9fEOGVL39q2my+WUxPqzrqG1uKE1r59npgSN9A==",
+      "version": "2.13.2",
+      "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.13.2.tgz",
+      "integrity": "sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ==",
       "requires": {
         "async-validator": "~1.8.1",
         "babel-helper-vue-jsx-merge-props": "^2.0.0",
@@ -19724,8 +19724,8 @@
     },
     "normalize-wheel": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
-      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
+      "resolved": "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
     },
     "normalize.css": {
       "version": "8.0.0",
@@ -22891,9 +22891,9 @@
       "dev": true
     },
     "resize-observer-polyfill": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz",
-      "integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg=="
+      "version": "1.5.1",
+      "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
     },
     "resolve": {
       "version": "1.22.1",
@@ -24068,9 +24068,9 @@
       "dev": true
     },
     "throttle-debounce": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.0.1.tgz",
-      "integrity": "sha1-2tD+Ew+drzcZ/eoz3Dao5rp/MLU="
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
     },
     "through2": {
       "version": "2.0.3",

+ 1 - 1
package.json

@@ -14,7 +14,7 @@
     "clean-deep": "^3.4.0",
     "dayjs": "^1.11.2",
     "echarts": "^4.2.0-rc.2",
-    "element-ui": "^2.3.7",
+    "element-ui": "^2.13.2",
     "js-cookie": "^2.2.0",
     "normalize.css": "^8.0.0",
     "nprogress": "^0.2.0",

+ 19 - 0
src/api/order.js

@@ -65,3 +65,22 @@ export function updateOrderNote(params) {
     params:params
   })
 }
+
+// 获取物流信息
+export function getSelectCourier(params) {
+  return request({
+    url:'/order/selectCourier',
+    method:'get',
+    params:params
+  })
+}
+
+// 刷新物流信息
+export function refreshCourier(params) {
+  return request({
+    url:'/order/refreshCourier',
+    method:'get',
+    params:params
+  })
+}
+

+ 6 - 3
src/views/oms/order/index.vue

@@ -136,6 +136,7 @@
           <template slot-scope="scope">
             <p v-if="scope.row.userType == 'STUDENT'">学生</p>
             <p v-else-if="scope.row.userType == 'TEACHER'">老师</p>
+            <p v-else-if="scope.row.userType == 'JMEDU'">管乐团</p>
             <p v-else>--</p>
           </template>
         </el-table-column>
@@ -173,12 +174,12 @@
               @click="handleViewOrder(scope.$index, scope.row)"
               >查看订单</el-button
             >
-            <el-button
+            <!-- <el-button
               size="mini"
               @click="handleCloseOrder(scope.$index, scope.row)"
               v-show="scope.row.status === 0 || scope.row.status === 6"
               >关闭订单</el-button
-            >
+            > -->
             <el-button
               size="mini"
               @click="handleDeliveryOrder(scope.$index, scope.row)"
@@ -380,7 +381,9 @@ export default {
         return "支付宝";
       } else if (value === 2) {
         return "微信";
-      } else {
+      } else if(value ===3){
+        return "0元支付";
+      }else {
         return "未支付";
       }
     },

+ 89 - 12
src/views/oms/order/orderDetail.vue

@@ -44,9 +44,9 @@
             >修改费用信息</el-button
           >
           <!-- <el-button size="mini" @click="showMessageDialog">发送站内信</el-button> -->
-          <el-button size="mini" @click="showCloseOrderDialog"
+          <!-- <el-button size="mini" @click="showCloseOrderDialog"
             >关闭订单</el-button
-          >
+          > -->
           <el-button size="mini" @click="showMarkOrderDialog"
             >备注订单</el-button
           >
@@ -56,7 +56,7 @@
             >修改收货人信息</el-button
           >
           <!-- <el-button size="mini" @click="showMessageDialog">发送站内信</el-button> -->
-          <el-button size="mini">取消订单</el-button>
+          <!-- <el-button size="mini">取消订单</el-button> -->
           <el-button size="mini" @click="showMarkOrderDialog"
             >备注订单</el-button
           >
@@ -161,9 +161,16 @@
           <el-col :span="6" class="table-cell">{{
             order.receiverPostCode
           }}</el-col>
-          <el-col :span="6" class="table-cell">{{
-            order | formatAddress
-          }}</el-col>
+          <el-col :span="6" class="table-cell">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="order | formatAddress"
+              placement="top"
+            >
+              <p class="address">{{ order | formatAddress }}</p>
+            </el-tooltip>
+          </el-col>
         </el-row>
       </div>
       <div style="margin-top: 20px">
@@ -305,6 +312,23 @@
           </template>
         </el-table-column>
       </el-table>
+      <div style="margin-top: 20px" class="flexbox">
+        <div>
+          <svg-icon icon-class="marker" style="color: #606266"></svg-icon>
+          <span class="font-small">物流信息</span>
+        </div>
+
+        <el-button size="mini" @click="refreshCourierList">刷新物流</el-button>
+      </div>
+      <el-timeline :reverse="reverse">
+        <el-timeline-item
+          v-for="(activity, index) in activities"
+          :key="index"
+          :timestamp="activity.timestamp"
+        >
+          {{ activity.content }}
+        </el-timeline-item>
+      </el-timeline>
     </el-card>
     <el-dialog
       title="修改收货人信息"
@@ -483,10 +507,13 @@ import {
   closeOrder,
   updateOrderNote,
   deleteOrder,
+  getSelectCourier,
+  refreshCourier
 } from "@/api/order";
 import LogisticsDialog from "@/views/oms/order/components/logisticsDialog";
 import { formatDate } from "@/utils/date";
 import VDistpicker from "v-distpicker";
+import dayjs from "dayjs";
 const defaultReceiverInfo = {
   orderId: null,
   receiverName: null,
@@ -517,16 +544,30 @@ export default {
       messageDialogVisible: false,
       message: { title: null, content: null },
       closeDialogVisible: false,
-      closeInfo: { note: '', id: '' },
+      closeInfo: { note: "", id: "" },
       markOrderDialogVisible: false,
       markInfo: { note: null },
       logisticsDialogVisible: false,
+      reverse: false,
+      activities: [],
     };
   },
   created() {
     this.id = this.list = this.$route.query.id;
     getOrderDetail(this.id).then((response) => {
       this.order = response.data;
+      if (this.order.deliverySn) {
+        getSelectCourier({ deliverySn: this.order.deliverySn }).then((res) => {
+          if (res.code == 200) {
+            this.activities = JSON.parse(res.data.logistics).map((item) => {
+              return {
+                content: item.context,
+                timestamp: dayjs(item.time).format("YYYY-MM-DD HH:mm:ss"),
+              };
+            });
+          }
+        });
+      }
     });
   },
   filters: {
@@ -551,7 +592,9 @@ export default {
         return "支付宝";
       } else if (value === 2) {
         return "微信";
-      } else {
+      } else if(value ===3){
+        return "0元支付";
+      }else {
         return "未支付";
       }
     },
@@ -730,7 +773,7 @@ export default {
     },
     showCloseOrderDialog() {
       this.closeDialogVisible = true;
-      this.closeInfo.note = '';
+      this.closeInfo.note = "";
       this.closeInfo.id = this.id;
     },
     handleCloseOrder() {
@@ -761,7 +804,7 @@ export default {
     showMarkOrderDialog() {
       this.markOrderDialogVisible = true;
       this.markInfo.id = this.id;
-      this.markInfo.note = '';
+      this.markInfo.note = "";
     },
     handleMarkOrder() {
       this.$confirm("是否要备注订单?", "提示", {
@@ -773,7 +816,11 @@ export default {
         // params.append("id", this.markInfo.id);
         // params.append("note", this.markInfo.note);
         // params.append("status", this.order.status);
-        let obj = {id:this.markInfo.id,note:this.markInfo.note,status:this.order.status}
+        let obj = {
+          id: this.markInfo.id,
+          note: this.markInfo.note,
+          status: this.order.status,
+        };
         updateOrderNote(obj).then((response) => {
           this.markOrderDialogVisible = false;
           this.$message({
@@ -794,7 +841,7 @@ export default {
       }).then(() => {
         // let params = new URLSearchParams();
         // params.append("ids", [this.id]);
-        let obj = {ids:this.id}
+        let obj = { ids: this.id };
         deleteOrder(obj).then((response) => {
           this.$message({
             message: "删除成功!",
@@ -808,6 +855,20 @@ export default {
     showLogisticsDialog() {
       this.logisticsDialogVisible = true;
     },
+    refreshCourierList(){
+      if (this.order.deliverySn) {
+        refreshCourier({ deliverySn: this.order.deliverySn }).then((res) => {
+          if (res.code == 200) {
+            this.activities = JSON.parse(res.data.logistics).map((item) => {
+              return {
+                content: item.context,
+                timestamp: dayjs(item.time).format("YYYY-MM-DD HH:mm:ss"),
+              };
+            });
+          }
+        });
+      }
+    }
   },
 };
 </script>
@@ -857,6 +918,22 @@ export default {
   font-size: 14px;
   color: #303133;
 }
+.address {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  margin: 0;
+}
+.el-timeline {
+  padding-left: 0 !important;
+  margin-top: 20px;
+}
+.flexbox {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: space-between;
+}
 </style>
 
 

+ 5 - 2
src/views/pms/product/components/ProductAttrDetail.vue

@@ -126,14 +126,16 @@
           <el-table-column label="SKU编号" align="center">
             <template slot-scope="scope">
               <el-input
+
                 v-model="scope.row.skuCode"
-                :disabled="!isEdit"
+                :disabled="(scope.row.platformLock ||!isEdit )"
               ></el-input>
             </template>
           </el-table-column>
           <el-table-column label="操作" width="80" align="center">
             <template slot-scope="scope">
               <el-button
+              v-if="!scope.row.platformLock"
                 :disabled="!isEdit"
                 type="text"
                 @click="handleRemoveProductSku(scope.$index, scope.row)"
@@ -348,7 +350,7 @@ export default {
   },
   created() {},
   mounted() {
-    console.log(this.value.skuStockList);
+    console.log(this.value.skuStockList,'skuStockList');
     this.handleEditCreated();
     this.getProductAttrCateList();
   },
@@ -410,6 +412,7 @@ export default {
           }
           if (this.isEdit) {
             //编辑模式下刷新商品属性图片
+            console.log('编辑模式刷新属性')
             this.refreshProductAttrPics();
           }
         } else {

+ 5 - 7
src/views/pms/product/components/ProductInfoDetail.vue

@@ -39,15 +39,15 @@
           </el-option>
         </el-select>
       </el-form-item>
-      <!-- <el-form-item label="商品介绍:">
+      <el-form-item label="商品描述:">
         <el-input
           :autoSize="true"
-          v-model="value.description"
+          v-model="value.detailDesc"
           :disabled="!isEdit"
           type="textarea"
           placeholder="请输入内容"
         ></el-input>
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item label="商品货号:">
         <el-input v-model="value.productSn" :disabled="!isEdit"></el-input>
       </el-form-item>
@@ -178,7 +178,7 @@ export default {
       this.handleEditCreated();
     },
     selectProductCateValue: function (newValue) {
-      console.log(newValue, "selectProductCateValue", this.value);
+      console.log(newValue, "newValue", this.value);
       if (newValue != null && newValue.length === 2) {
         this.value.productCategoryId = newValue[1];
         this.value.productCategoryName = this.getCateNameById(
@@ -188,7 +188,6 @@ export default {
         this.value.productCategoryId = null;
         this.value.productCategoryName = null;
       }
-
       // this.handleEditCreated();
     },
   },
@@ -203,7 +202,6 @@ export default {
       this.hasEditCreated = true;
     },
     getProductCateList() {
-      console.log("获取商品分类");
       fetchListWithChildren().then((response) => {
         let list = response.data;
         this.productCateOptions = [];
@@ -223,7 +221,7 @@ export default {
             children: children,
           });
         }
-        this.$set(this, "productCateOptions", this.productCateOptions);
+        // this.$set(this,'productCateOptions',this.productCateOptions)
       });
     },
     getBrandList() {

+ 1 - 0
src/views/pms/product/index.vue

@@ -353,6 +353,7 @@ const defaultListQuery = {
   productSn: null,
   productCategoryId: null,
   brandId: null,
+  stock:null
 };
 export default {
   name: "productList",

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.