Browse Source

全局修复visible 警告,替换为v-model:open,删除moment 模块,替换时间处理dayJS

chenlei1231 3 months ago
parent
commit
6649c8b081
24 changed files with 653 additions and 497 deletions
  1. 0 1
      package.json
  2. 143 13
      pnpm-lock.yaml
  3. 7 7
      src/views/adweb/data/dailyData.vue
  4. 22 16
      src/views/adweb/enquiry/AdwebEnquiryList.vue
  5. 20 13
      src/views/adweb/enquiry/AdwebWasteEnquiryList.vue
  6. 14 6
      src/views/adweb/enquiry/components/AdwebEnquiryModal.vue
  7. 61 65
      src/views/adweb/enquiryPublicRules/publicBlackEmail/modules/XpRecycleBinModal.vue
  8. 17 26
      src/views/adweb/enquiryPublicRules/publicBlackip/modules/AdwebBlackIpModal.vue
  9. 61 65
      src/views/adweb/enquiryPublicRules/publicBlackip/modules/XpRecycleBinModal.vue
  10. 1 1
      src/views/adweb/enquiryPublicRules/publicRuleList/modules/AdwebEnquiryRuleModal.vue
  11. 1 1
      src/views/adweb/enquiryPublicRules/publicRuleList/modules/XpRecycleBinModal.vue
  12. 1 1
      src/views/adweb/enquirySiteRules/siteBlackEmail/modules/EnquirySiteBlackEmailModal.vue
  13. 1 1
      src/views/adweb/enquirySiteRules/siteBlackIp/modules/AdwebSiteBlackIpModal.vue
  14. 1 1
      src/views/adweb/enquirySiteRules/siteRuleList/modules/AdwebEnquirySiteRuleModal.vue
  15. 1 1
      src/views/adweb/enquirySiteRules/siteRuleList/modules/XpRecycleBinModal.vue
  16. 14 6
      src/views/adweb/product/components/AdwebProductModal.vue
  17. 2 2
      src/views/adweb/site/AdwebSite.data.ts
  18. 11 3
      src/views/adweb/site/components/AdwebSiteModal.vue
  19. 1 1
      src/views/adweb/site/components/GtmAdd.vue
  20. 1 1
      src/views/adweb/site/components/SiteSetEnquiry.vue
  21. 250 258
      src/views/adweb/subscribePlan/components/IntegrityCheckingDrawer.vue
  22. 1 1
      src/views/adweb/subscribePlan/components/SubscribePlanModal.vue
  23. 8 1
      src/views/adweb/system/modules/XpRecycleBinModal.vue
  24. 14 6
      src/views/adweb/theme/components/AdwebThemeModal.vue

+ 0 - 1
package.json

@@ -60,7 +60,6 @@
     "markdown-it-link-attributes": "^4.0.1",
     "md5": "^2.3.0",
     "mockjs": "^1.1.0",
-    "moment": "^2.30.1",
     "nprogress": "^0.2.0",
     "path-to-regexp": "^6.2.1",
     "pinia": "2.1.7",

+ 143 - 13
pnpm-lock.yaml

@@ -92,12 +92,18 @@ importers:
       highlight.js:
         specifier: ^11.9.0
         version: 11.9.0
+      html2canvas:
+        specifier: ^1.4.1
+        version: 1.4.1
       intro.js:
         specifier: ^7.2.0
         version: 7.2.0
       jquery:
         specifier: ^3.7.1
         version: 3.7.1
+      jspdf:
+        specifier: ^2.5.2
+        version: 2.5.2
       lodash-es:
         specifier: ^4.17.21
         version: 4.17.21
@@ -119,9 +125,6 @@ importers:
       mockjs:
         specifier: ^1.1.0
         version: 1.1.0
-      moment:
-        specifier: ^2.30.1
-        version: 2.30.1
       nprogress:
         specifier: ^0.2.0
         version: 0.2.0
@@ -1752,6 +1755,9 @@ packages:
   '@types/qs@6.9.11':
     resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==}
 
+  '@types/raf@3.4.3':
+    resolution: {integrity: sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==, tarball: https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz}
+
   '@types/semver@7.5.6':
     resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
 
@@ -2218,7 +2224,7 @@ packages:
     engines: {node: '>= 4.0.0'}
 
   atob@2.1.2:
-    resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+    resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz}
     engines: {node: '>= 4.5.0'}
     hasBin: true
 
@@ -2279,6 +2285,10 @@ packages:
   balanced-match@2.0.0:
     resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
 
+  base64-arraybuffer@1.0.2:
+    resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==, tarball: https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz}
+    engines: {node: '>= 0.6.0'}
+
   base64-js@1.5.1:
     resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
 
@@ -2335,6 +2345,11 @@ packages:
   bser@2.1.1:
     resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
 
+  btoa@1.2.1:
+    resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==, tarball: https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz}
+    engines: {node: '>= 0.4.0'}
+    hasBin: true
+
   buffer-from@1.1.2:
     resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
 
@@ -2382,6 +2397,10 @@ packages:
   caniuse-lite@1.0.30001632:
     resolution: {integrity: sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==}
 
+  canvg@3.0.10:
+    resolution: {integrity: sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==, tarball: https://registry.npmmirror.com/canvg/-/canvg-3.0.10.tgz}
+    engines: {node: '>=10.0.0'}
+
   chalk@1.1.3:
     resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
     engines: {node: '>=0.10.0'}
@@ -2732,6 +2751,9 @@ packages:
     resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==}
     engines: {node: '>=12 || >=16'}
 
+  css-line-break@2.1.0:
+    resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==, tarball: https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz}
+
   css-select@4.3.0:
     resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
 
@@ -3144,6 +3166,9 @@ packages:
     resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
     engines: {node: '>= 4'}
 
+  dompurify@2.5.8:
+    resolution: {integrity: sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==, tarball: https://registry.npmmirror.com/dompurify/-/dompurify-2.5.8.tgz}
+
   domutils@1.7.0:
     resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
 
@@ -3611,6 +3636,9 @@ packages:
   fb-watchman@2.0.2:
     resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
 
+  fflate@0.8.2:
+    resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, tarball: https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz}
+
   figures@3.2.0:
     resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
     engines: {node: '>=8'}
@@ -3864,7 +3892,7 @@ packages:
     resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
 
   graceful-fs@4.2.11:
-    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz}
 
   graphemer@1.4.0:
     resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -3981,6 +4009,10 @@ packages:
     resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
     engines: {node: '>=8'}
 
+  html2canvas@1.4.1:
+    resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==, tarball: https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz}
+    engines: {node: '>=8.0.0'}
+
   htmlparser2@3.10.1:
     resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
 
@@ -4025,7 +4057,7 @@ packages:
     engines: {node: '>= 4'}
 
   image-size@0.5.5:
-    resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+    resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz}
     engines: {node: '>=0.10.0'}
     hasBin: true
 
@@ -4521,6 +4553,9 @@ packages:
     resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
     engines: {'0': node >= 0.2.0}
 
+  jspdf@2.5.2:
+    resolution: {integrity: sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==, tarball: https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz}
+
   katex@0.16.9:
     resolution: {integrity: sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==}
     hasBin: true
@@ -4806,7 +4841,7 @@ packages:
     engines: {node: '>= 0.6'}
 
   mime@1.6.0:
-    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz}
     engines: {node: '>=4'}
     hasBin: true
 
@@ -4866,9 +4901,6 @@ packages:
     resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==}
     hasBin: true
 
-  moment@2.30.1:
-    resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
-
   mri@1.2.0:
     resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
     engines: {node: '>=4'}
@@ -5180,6 +5212,9 @@ packages:
   perfect-debounce@1.0.0:
     resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
 
+  performance-now@2.1.0:
+    resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz}
+
   picocolors@1.0.0:
     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
 
@@ -5392,6 +5427,9 @@ packages:
     resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
     engines: {node: '>=8'}
 
+  raf@3.4.1:
+    resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, tarball: https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz}
+
   react-is@18.2.0:
     resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
 
@@ -5430,6 +5468,9 @@ packages:
   regenerator-runtime@0.11.1:
     resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
 
+  regenerator-runtime@0.13.11:
+    resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz}
+
   regenerator-runtime@0.14.1:
     resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
 
@@ -5527,6 +5568,10 @@ packages:
   rfdc@1.3.0:
     resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
 
+  rgbcolor@1.0.1:
+    resolution: {integrity: sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==, tarball: https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz}
+    engines: {node: '>= 0.8.15'}
+
   rimraf@3.0.2:
     resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
     hasBin: true
@@ -5755,7 +5800,7 @@ packages:
     engines: {node: '>=0.10.0'}
 
   source-map@0.6.1:
-    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz}
     engines: {node: '>=0.10.0'}
 
   source-map@0.7.4:
@@ -5796,6 +5841,10 @@ packages:
     resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
     engines: {node: '>=10'}
 
+  stackblur-canvas@2.7.0:
+    resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==, tarball: https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz}
+    engines: {node: '>=0.1.14'}
+
   static-extend@0.1.2:
     resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
     engines: {node: '>=0.10.0'}
@@ -5958,6 +6007,10 @@ packages:
   svg-baker@1.7.0:
     resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
 
+  svg-pathdata@6.0.3:
+    resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==, tarball: https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz}
+    engines: {node: '>=12.0.0'}
+
   svg-tags@1.0.0:
     resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
 
@@ -5995,6 +6048,9 @@ packages:
     resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
     engines: {node: '>=8'}
 
+  text-segmentation@1.0.3:
+    resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==, tarball: https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz}
+
   text-table@0.2.0:
     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
 
@@ -6272,6 +6328,9 @@ packages:
     resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
     engines: {node: '>= 0.4.0'}
 
+  utrie@1.0.2:
+    resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==, tarball: https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz}
+
   v8-compile-cache-lib@3.0.1:
     resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
 
@@ -8065,6 +8124,9 @@ snapshots:
 
   '@types/qs@6.9.11': {}
 
+  '@types/raf@3.4.3':
+    optional: true
+
   '@types/semver@7.5.6': {}
 
   '@types/showdown@2.0.6': {}
@@ -8797,6 +8859,8 @@ snapshots:
 
   balanced-match@2.0.0: {}
 
+  base64-arraybuffer@1.0.2: {}
+
   base64-js@1.5.1: {}
 
   base@0.11.2:
@@ -8872,6 +8936,8 @@ snapshots:
     dependencies:
       node-int64: 0.4.0
 
+  btoa@1.2.1: {}
+
   buffer-from@1.1.2: {}
 
   buffer@5.7.1:
@@ -8928,6 +8994,18 @@ snapshots:
 
   caniuse-lite@1.0.30001632: {}
 
+  canvg@3.0.10:
+    dependencies:
+      '@babel/runtime': 7.23.7
+      '@types/raf': 3.4.3
+      core-js: 3.35.0
+      raf: 3.4.1
+      regenerator-runtime: 0.13.11
+      rgbcolor: 1.0.1
+      stackblur-canvas: 2.7.0
+      svg-pathdata: 6.0.3
+    optional: true
+
   chalk@1.1.3:
     dependencies:
       ansi-styles: 2.2.1
@@ -9298,6 +9376,10 @@ snapshots:
 
   css-functions-list@3.2.1: {}
 
+  css-line-break@2.1.0:
+    dependencies:
+      utrie: 1.0.2
+
   css-select@4.3.0:
     dependencies:
       boolbase: 1.0.0
@@ -9709,6 +9791,9 @@ snapshots:
     dependencies:
       domelementtype: 2.3.0
 
+  dompurify@2.5.8:
+    optional: true
+
   domutils@1.7.0:
     dependencies:
       dom-serializer: 0.2.2
@@ -10259,6 +10344,8 @@ snapshots:
     dependencies:
       bser: 2.1.1
 
+  fflate@0.8.2: {}
+
   figures@3.2.0:
     dependencies:
       escape-string-regexp: 1.0.5
@@ -10655,6 +10742,11 @@ snapshots:
 
   html-tags@3.3.1: {}
 
+  html2canvas@1.4.1:
+    dependencies:
+      css-line-break: 2.1.0
+      text-segmentation: 1.0.3
+
   htmlparser2@3.10.1:
     dependencies:
       domelementtype: 1.3.1
@@ -11378,6 +11470,18 @@ snapshots:
 
   jsonparse@1.3.1: {}
 
+  jspdf@2.5.2:
+    dependencies:
+      '@babel/runtime': 7.23.7
+      atob: 2.1.2
+      btoa: 1.2.1
+      fflate: 0.8.2
+    optionalDependencies:
+      canvg: 3.0.10
+      core-js: 3.35.0
+      dompurify: 2.5.8
+      html2canvas: 1.4.1
+
   katex@0.16.9:
     dependencies:
       commander: 8.3.0
@@ -11732,8 +11836,6 @@ snapshots:
     dependencies:
       commander: 11.1.0
 
-  moment@2.30.1: {}
-
   mri@1.2.0: {}
 
   mrmime@2.0.0: {}
@@ -12044,6 +12146,9 @@ snapshots:
 
   perfect-debounce@1.0.0: {}
 
+  performance-now@2.1.0:
+    optional: true
+
   picocolors@1.0.0: {}
 
   picocolors@1.0.1: {}
@@ -12242,6 +12347,11 @@ snapshots:
 
   quick-lru@4.0.1: {}
 
+  raf@3.4.1:
+    dependencies:
+      performance-now: 2.1.0
+    optional: true
+
   react-is@18.2.0: {}
 
   read-pkg-up@10.1.0:
@@ -12293,6 +12403,9 @@ snapshots:
 
   regenerator-runtime@0.11.1: {}
 
+  regenerator-runtime@0.13.11:
+    optional: true
+
   regenerator-runtime@0.14.1: {}
 
   regex-not@1.0.2:
@@ -12369,6 +12482,9 @@ snapshots:
 
   rfdc@1.3.0: {}
 
+  rgbcolor@1.0.1:
+    optional: true
+
   rimraf@3.0.2:
     dependencies:
       glob: 7.2.3
@@ -12675,6 +12791,9 @@ snapshots:
     dependencies:
       escape-string-regexp: 2.0.0
 
+  stackblur-canvas@2.7.0:
+    optional: true
+
   static-extend@0.1.2:
     dependencies:
       define-property: 0.2.5
@@ -12884,6 +13003,9 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  svg-pathdata@6.0.3:
+    optional: true
+
   svg-tags@1.0.0: {}
 
   svgo@2.8.0:
@@ -12930,6 +13052,10 @@ snapshots:
 
   text-extensions@2.4.0: {}
 
+  text-segmentation@1.0.3:
+    dependencies:
+      utrie: 1.0.2
+
   text-table@0.2.0: {}
 
   throttle-debounce@1.1.0: {}
@@ -13191,6 +13317,10 @@ snapshots:
 
   utils-merge@1.0.1: {}
 
+  utrie@1.0.2:
+    dependencies:
+      base64-arraybuffer: 1.0.2
+
   v8-compile-cache-lib@3.0.1: {}
 
   v8-to-istanbul@9.2.0:

+ 7 - 7
src/views/adweb/data/dailyData.vue

@@ -84,7 +84,7 @@
   import '/@/assets/less/common.less';
   import { getAction } from '/@/api/manage/manage';
   import { JeecgListMixin } from '/@/hooks/component/JeecgListMixin';
-  import moment from 'moment';
+  import dayjs from 'dayjs';
   import areaChart from './chart/areaChart.vue';
   import selectSite from '/@/components/Adweb/selectSite.vue';
 
@@ -173,7 +173,7 @@
     },
     mounted() {
       this.queryParam.dateType = 'sevenDay';
-      this.rangeDate = [moment().subtract(7, 'days'), moment().subtract(1, 'days')];
+      this.rangeDate = [dayjs().subtract(7, 'days'), dayjs().subtract(1, 'days')];
       this.getSiteList();
     },
     methods: {
@@ -230,7 +230,7 @@
       },
       //日期选择只能今天之前
       disabledDate(current) {
-        return current && current > moment().subtract(0, 'days');
+        return current && current > dayjs().subtract(0, 'days');
       },
       //设置列表的时间查询条件
       setTime(time) {
@@ -240,13 +240,13 @@
         if (time == '') {
           this.rangeDate = undefined;
         } else if (time == 'sevenDay') {
-          this.rangeDate = [moment().subtract(7, 'days'), moment().subtract(1, 'days')];
+          this.rangeDate = [dayjs().subtract(7, 'days'), dayjs().subtract(1, 'days')];
         } else if (time == 'thirtyDay') {
-          this.rangeDate = [moment().subtract(30, 'days'), moment().subtract(1, 'days')];
+          this.rangeDate = [dayjs().subtract(30, 'days'), dayjs().subtract(1, 'days')];
         } else if (time == 'yesterday') {
-          this.rangeDate = [moment().subtract(1, 'days'), moment().subtract(1, 'days')];
+          this.rangeDate = [dayjs().subtract(1, 'days'), dayjs().subtract(1, 'days')];
         } else if (time == 'today') {
-          this.rangeDate = [moment(), moment()];
+          this.rangeDate = [dayjs(), dayjs()];
         }
         this.reloadData();
       },

+ 22 - 16
src/views/adweb/enquiry/AdwebEnquiryList.vue

@@ -212,7 +212,7 @@
     />
 
     <!-- 转发询盘 -->
-    <a-modal title="转发" :visible="forwardVisible" @ok="editForward" @cancel="cancelEditForward" :confirm-loading="forwardLoading">
+    <a-modal title="转发" v-model:open="forwardVisible" @ok="editForward" @cancel="cancelEditForward" :confirm-loading="forwardLoading">
       <a-radio-group v-model:value="selectedUserId">
         <a-radio v-for="item in subAccountOptions" style="display: block; height: 30px; lineheight: 30px" :value="item.id">
           {{ item.username }}
@@ -245,17 +245,20 @@
 
   import { useMessage } from '@/hooks/web/useMessage';
 
-  import moment from 'moment';
-  import { any } from 'vue-types';
+  import dayjs, { Dayjs } from 'dayjs';
+  const dateFormat = 'YYYY-MM-DD';
+  type RangeValue = [Dayjs, Dayjs];
+  // 过滤日期范围
+  let rangeDate = ref<RangeValue>();
+
   import { filterOption } from 'ant-design-vue/es/vc-mentions/src/util';
   import enquiryDetail from '@/views/adweb/enquiry/modules/enquiryDetail.vue';
   import XpRecycleBinModal from '@/views/adweb/system/modules/XpRecycleBinModal.vue';
   import blackList from '@/views/adweb/enquiry/modules/blackList.vue';
   import enquiryTrackRecord from '@/views/adweb/enquiry/modules/enquiryTrackRecord.vue';
 
-  const formRef = ref();
   const queryParam = reactive<any>({});
-  const toggleSearchStatus = ref<boolean>(false);
+
   const registerModal = ref();
   const selectSiteRef = ref(null);
   const { createMessage } = useMessage();
@@ -323,9 +326,6 @@
     wait: 0,
   });
 
-  // 过滤日期范围
-  let rangeDate = ref<any>(any);
-
   // 子账号列表
   let subAccountOptions = ref([{ id: '', username: '' }]);
 
@@ -425,12 +425,14 @@
       queryParam.start = dateString[0];
       queryParam.end = dateString[1];
       queryParam.dateType = undefined;
+
+      getTableAndNum();
     }
   }
 
   //日期选择只能今天之前
   function disabledDate(current) {
-    return current && current > moment().endOf('day');
+    return current && current > dayjs().endOf('day');
   }
 
   //设置列表的时间查询条件
@@ -442,14 +444,20 @@
     if (time == '') {
       rangeDate.value = undefined;
     } else if (time == 'sevenDay') {
-      rangeDate.value = [moment().subtract(6, 'days'), moment()];
+      rangeDate.value = [dayjs().subtract(6, 'days'), dayjs()];
     } else if (time == 'thirtyDay') {
-      rangeDate.value = [moment().subtract(29, 'days'), moment()];
+      rangeDate.value = [dayjs().subtract(29, 'days'), dayjs()];
     } else if (time == 'today') {
-      rangeDate.value = [moment(), moment()];
+      rangeDate.value = [dayjs(), dayjs()];
     } else if (time == 'yesterday') {
-      rangeDate.value = [moment().subtract(1, 'days'), moment().subtract(1, 'days')];
+      rangeDate.value = [dayjs().subtract(1, 'days'), dayjs().subtract(1, 'days')];
     }
+
+    if (rangeDate.value != undefined) {
+      queryParam.start = rangeDate.value[0].format(dateFormat);
+      queryParam.end = rangeDate.value[1].format(dateFormat);
+    }
+
     getTableAndNum();
   }
 
@@ -817,7 +825,6 @@
    * 查询
    */
   function searchQuery() {
-    console.log(queryParam.userEffective, 'queryParam.userEffectivequeryParam.userEffective');
     reload();
   }
 
@@ -825,10 +832,9 @@
    * 重置
    */
   function searchReset() {
-    formRef.value.resetFields();
     selectedRowKeys.value = [];
     //刷新数据
-    reload();
+    getTableAndNum(true);
   }
 </script>
 

+ 20 - 13
src/views/adweb/enquiry/AdwebWasteEnquiryList.vue

@@ -185,7 +185,7 @@
     />
 
     <!-- 转发询盘 -->
-    <a-modal title="转发" :visible="forwardVisible" @ok="editForward" @cancel="cancelEditForward" :confirm-loading="forwardLoading">
+    <a-modal title="转发" v-model:open="forwardVisible" @ok="editForward" @cancel="cancelEditForward" :confirm-loading="forwardLoading">
       <a-radio-group v-model:value="selectedUserId">
         <a-radio v-for="item in subAccountOptions" style="display: block; height: 30px; lineheight: 30px" :value="item.id">
           {{ item.username }}
@@ -214,8 +214,13 @@
 
   import { useMessage } from '@/hooks/web/useMessage';
 
-  import moment from 'moment';
-  import { any } from 'vue-types';
+  // 过滤日期范围
+  import dayjs, { Dayjs } from 'dayjs';
+  const dateFormat = 'YYYY-MM-DD';
+  type RangeValue = [Dayjs, Dayjs];
+  // 过滤日期范围
+  let rangeDate = ref<RangeValue>();
+
   import { filterOption } from 'ant-design-vue/es/vc-mentions/src/util';
   import enquiryDetail from '@/views/adweb/enquiry/modules/enquiryDetail.vue';
   import XpRecycleBinModal from '@/views/adweb/system/modules/XpRecycleBinModal.vue';
@@ -292,9 +297,6 @@
     wait: 0,
   });
 
-  // 过滤日期范围
-  let rangeDate = ref<any>(any);
-
   // 子账号列表
   let subAccountOptions = ref([{ id: '', username: '' }]);
 
@@ -406,7 +408,7 @@
 
   //日期选择只能今天之前
   function disabledDate(current) {
-    return current && current > moment().endOf('day');
+    return current && current > dayjs().endOf('day');
   }
 
   //设置列表的时间查询条件
@@ -418,14 +420,20 @@
     if (time == '') {
       rangeDate.value = undefined;
     } else if (time == 'sevenDay') {
-      rangeDate.value = [moment().subtract(6, 'days'), moment()];
+      rangeDate.value = [dayjs().subtract(6, 'days'), dayjs()];
     } else if (time == 'thirtyDay') {
-      rangeDate.value = [moment().subtract(29, 'days'), moment()];
+      rangeDate.value = [dayjs().subtract(29, 'days'), dayjs()];
     } else if (time == 'today') {
-      rangeDate.value = [moment(), moment()];
+      rangeDate.value = [dayjs(), dayjs()];
     } else if (time == 'yesterday') {
-      rangeDate.value = [moment().subtract(1, 'days'), moment().subtract(1, 'days')];
+      rangeDate.value = [dayjs().subtract(1, 'days'), dayjs().subtract(1, 'days')];
     }
+
+    if (rangeDate.value != undefined) {
+      queryParam.start = rangeDate.value[0].format(dateFormat);
+      queryParam.end = rangeDate.value[1].format(dateFormat);
+    }
+
     getTableAndNum();
   }
 
@@ -773,10 +781,9 @@
    * 重置
    */
   function searchReset() {
-    formRef.value.resetFields();
     selectedRowKeys.value = [];
     //刷新数据
-    reload();
+    getTableAndNum(true);
   }
 </script>
 

+ 14 - 6
src/views/adweb/enquiry/components/AdwebEnquiryModal.vue

@@ -1,14 +1,22 @@
 <template>
-  <j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
-    <AdwebEnquiryForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></AdwebEnquiryForm>
+  <j-modal
+    :title="title"
+    :width="width"
+    v-model:open="visible"
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <AdwebEnquiryForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false" />
   </j-modal>
 </template>
 
 <script lang="ts" setup>
   import { ref, nextTick, defineExpose } from 'vue';
-  import AdwebEnquiryForm from './AdwebEnquiryForm.vue'
+  import AdwebEnquiryForm from './AdwebEnquiryForm.vue';
   import JModal from '/@/components/Modal/src/JModal/JModal.vue';
-  
+
   const title = ref<string>('');
   const width = ref<number>(800);
   const visible = ref<boolean>(false);
@@ -26,7 +34,7 @@
       registerForm.value.add();
     });
   }
-  
+
   /**
    * 编辑
    * @param record
@@ -38,7 +46,7 @@
       registerForm.value.edit(record);
     });
   }
-  
+
   /**
    * 确定按钮点击事件
    */

+ 61 - 65
src/views/adweb/enquiryPublicRules/publicBlackEmail/modules/XpRecycleBinModal.vue

@@ -6,118 +6,115 @@
     :destroyOnClose="true"
     @cancel="handleCancel"
     cancelText="关闭"
-    :okButtonProps="{style:{display:'none'}}">
-
-
-    <a-form layout="inline" @keyup.enter.native="searchQuery" style="margin-bottom:15px">
+    :okButtonProps="{ style: { display: 'none' } }"
+  >
+    <a-form layout="inline" @keyup.enter.native="searchQuery" style="margin-bottom: 15px">
       <a-form-item>
-        <a-input placeholder="邮箱/姓名" v-model="queryParam.searchText"></a-input>
+        <a-input placeholder="邮箱/姓名" v-model="queryParam.searchText" />
       </a-form-item>
       <a-form-item>
         <a-button type="primary" @click="searchQuery">查询</a-button>
-        <a-button @click="searchReset" style="margin-left:8px">重置</a-button>
+        <a-button @click="searchReset" style="margin-left: 8px">重置</a-button>
       </a-form-item>
     </a-form>
 
-    <a-table
-      ref="table"
-      size="middle"
-      :columns="columns"
-      :loading="loading"
-      :dataSource="dataSource"
-      >
+    <a-table ref="table" size="middle" :columns="columns" :loading="loading" :dataSource="dataSource">
       <!-- 显示头像 -->
-      <template slot="avatarslot" slot-scope="text, record, index">
+      <template #avatarslot="text, record, index">
         <div class="anty-img-wrap">
-          <a-avatar shape="square" :src="url.getAvatar(record.avatar)" icon="user"/>
+          <a-avatar shape="square" :src="url.getAvatar(record.avatar)" icon="user" />
+        </div>
+      </template>
+      <template #contactSlot="text, record">
+        <div>
+          <a-popover>
+            <template #content>
+              {{ text }}
+            </template>
+            <div style="width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">{{ text }}</div>
+          </a-popover>
         </div>
       </template>
-      <div slot="contactSlot" slot-scope="text, record">
-        <a-popover>
-          <template slot="content">
-            {{text}}
-          </template>
-          <div style="width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">{{text}}</div>
-        </a-popover>
-      </div>
-      <span slot="action" slot-scope="text, record">
-        <a @click="enquiryDetail(record)"> 详情</a>
-      </span>
+      <template #action="text, record">
+        <span>
+          <a @click="enquiryDetail(record)"> 详情</a>
+        </span>
+      </template>
     </a-table>
     <!--询盘详情-->
-    <enquiry-detail ref="enquiryDetail"></enquiry-detail>
+    <enquiry-detail ref="enquiryDetail" />
   </a-modal>
 </template>
 
 <script>
-import {getAction} from '/@/api/manage/manage'
-import {JeecgListMixin} from '/@/hooks/component/JeecgListMixin';
-import enquiryDetail from '/@/views/adweb/enquiry/modules/enquiryDetail.vue'
+  import { getAction } from '/@/api/manage/manage';
+  import { JeecgListMixin } from '/@/hooks/component/JeecgListMixin';
+  import enquiryDetail from '/@/views/adweb/enquiry/modules/enquiryDetail.vue';
 
-export default {
+  export default {
     name: 'XpRecycleBinModal',
+    components: { enquiryDetail },
     mixins: [JeecgListMixin],
-    components:{enquiryDetail},
     data() {
       return {
         title: '',
         loading: false,
         innerVisible: false,
         dataSource: [],
-        visible:false,
+        visible: false,
         columns: [],
         url: {
           list: '/adweb/adwebEnquiry/getWastedEnquiry',
         },
-        disableMixinCreated:true,
-        email:'',
-      }
+        disableMixinCreated: true,
+        email: '',
+      };
     },
 
     methods: {
-      init(email){
-        let that = this
+      init(email) {
+        let that = this;
         that.columns = [
-            { title: '站点名称', align: 'left', dataIndex: 'siteName', scopedSlots: { customRender: 'contactSlot' }},
-            { title: '姓名', align: 'left', dataIndex: 'contact', scopedSlots: { customRender: 'contactSlot' }},
-            { title: '邮箱', align: 'left', dataIndex: 'fromEmail', scopedSlots: { customRender: 'contactSlot' } },
-            { title: '电话', align: 'left', dataIndex: 'phone' },
-            { title: '询盘时间', align: 'left', dataIndex: 'recordCtime' },
-            { title: '操作', align: 'center', dataIndex: 'action', scopedSlots: { customRender: 'action' } }
-          ]
-        that.email = email
+          { title: '站点名称', align: 'left', dataIndex: 'siteName', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '姓名', align: 'left', dataIndex: 'contact', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '邮箱', align: 'left', dataIndex: 'fromEmail', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '电话', align: 'left', dataIndex: 'phone' },
+          { title: '询盘时间', align: 'left', dataIndex: 'recordCtime' },
+          { title: '操作', align: 'center', dataIndex: 'action', scopedSlots: { customRender: 'action' } },
+        ];
+        that.email = email;
         that.loadData(email);
-        console.log(email)
-        that.visible = true
+        console.log(email);
+        that.visible = true;
       },
 
       //询盘详情
-      enquiryDetail(record){
+      enquiryDetail(record) {
         this.$nextTick(() => {
-          this.$refs.enquiryDetail.init(record)
-        })
+          this.$refs.enquiryDetail.init(record);
+        });
       },
       searchQuery() {
         this.loadData(this.email);
       },
 
       searchReset() {
-        this.queryParam = {}
+        this.queryParam = {};
         this.loadData(this.email);
       },
 
-
       handleCancel() {
-        this.queryParam = {}
-        this.visible = false
+        this.queryParam = {};
+        this.visible = false;
       },
 
       loadData(email) {
-        if(!this.url.list){
-          this.$message.error("请设置url.list属性!")
-          return
+        console.log(!this.url.list);
+        if (!this.url.list) {
+          this.$message.error('请设置url.list属性!');
+          return;
         }
-        var params = this.getQueryParams();//查询条件
+        var params = this.getQueryParams(); //查询条件
         this.loading = true;
         params.email = email;
         params.wasteEnquiryType = 'email';
@@ -125,15 +122,14 @@ export default {
           if (res.success) {
             this.dataSource = res.result;
           }
-          if(res.code===510){
-            this.$message.warning(res.message)
+          if (res.code === 510) {
+            this.$message.warning(res.message);
           }
           this.loading = false;
-        })
+        });
       },
-
-    }
-  }
+    },
+  };
 </script>
 
 <style lang="less" scoped></style>

+ 17 - 26
src/views/adweb/enquiryPublicRules/publicBlackip/modules/AdwebBlackIpModal.vue

@@ -1,21 +1,13 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <adweb-black-ip-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit"></adweb-black-ip-form>
+  <j-modal :title="title" :width="width" v-model:open="visible" switchFullscreen @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
+    <adweb-black-ip-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit" />
   </j-modal>
 </template>
 
-<script lang="ts" setup name='AdwebBlackIpModal'>
-
-  import AdwebBlackIpForm from './AdwebBlackIpForm.vue'
-  import JModal from "@/components/Modal/src/JModal/JModal.vue";
-  import {nextTick, ref} from "vue";
+<script lang="ts" setup name="AdwebBlackIpModal">
+  import AdwebBlackIpForm from './AdwebBlackIpForm.vue';
+  import JModal from '@/components/Modal/src/JModal/JModal.vue';
+  import { nextTick, ref } from 'vue';
 
   const title = ref('');
   const width = ref(800);
@@ -24,43 +16,42 @@
   const realFormRef = ref();
   const emit = defineEmits(['ok', 'close']);
 
-  async function add () {
-    visible.value=true
+  async function add() {
+    visible.value = true;
     await nextTick();
 
     realFormRef.value.add();
   }
 
-  async function edit (record) {
-    visible.value=true
+  async function edit(record) {
+    visible.value = true;
     await nextTick();
 
-    realFormRef.value.edit(record)
+    realFormRef.value.edit(record);
   }
 
-  function close () {
+  function close() {
     emit('close');
     visible.value = false;
   }
 
-  function handleOk () {
+  function handleOk() {
     realFormRef.value.submitForm();
   }
 
-  function  submitCallback() {
+  function submitCallback() {
     emit('ok');
     visible.value = false;
   }
 
-  function handleCancel () {
-    close()
+  function handleCancel() {
+    close();
   }
 
   defineExpose({
     title,
     disableSubmit,
     add,
-    edit
+    edit,
   });
-
 </script>

+ 61 - 65
src/views/adweb/enquiryPublicRules/publicBlackip/modules/XpRecycleBinModal.vue

@@ -2,121 +2,118 @@
   <a-modal
     :width="1200"
     :title="title"
-    :visible="visible"
+    v-model:open="visible"
     :destroyOnClose="true"
     @cancel="handleCancel"
     cancelText="关闭"
-    :okButtonProps="{style:{display:'none'}}">
-
-
-    <a-form layout="inline" @keyup.enter.native="searchQuery" style="margin-bottom:15px">
+    :okButtonProps="{ style: { display: 'none' } }"
+  >
+    <a-form layout="inline" @keyup.enter.native="searchQuery" style="margin-bottom: 15px">
       <a-form-item>
-        <a-input placeholder="邮箱/姓名" v-model="queryParam.searchText"></a-input>
+        <a-input placeholder="邮箱/姓名" v-model="queryParam.searchText" />
       </a-form-item>
       <a-form-item>
         <a-button type="primary" @click="searchQuery">查询</a-button>
-        <a-button  @click="searchReset" style="margin-left:8px">重置</a-button>
+        <a-button @click="searchReset" style="margin-left: 8px">重置</a-button>
       </a-form-item>
     </a-form>
 
-    <a-table
-      ref="table"
-      size="middle"
-      :columns="columns"
-      :loading="loading"
-      :dataSource="dataSource"
-      >
+    <a-table ref="table" size="middle" :columns="columns" :loading="loading" :dataSource="dataSource">
       <!-- 显示头像 -->
-      <template slot="avatarslot" slot-scope="text, record, index">
+      <template #avatarslot="text, record, index">
         <div class="anty-img-wrap">
-          <a-avatar shape="square" :src="url.getAvatar(record.avatar)" icon="user"/>
+          <a-avatar shape="square" :src="url.getAvatar(record.avatar)" icon="user" />
         </div>
       </template>
-      <div slot="contactSlot" slot-scope="text, record">
-        <a-popover>
-          <template slot="content">
-            {{text}}
-          </template>
-          <div style="width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">{{text}}</div>
-        </a-popover>
-      </div>
-      <span slot="action" slot-scope="text, record">
-        <a @click="enquiryDetail(record)"> 详情</a>
-      </span>
+      <template #contactSlot="text, record">
+        <div>
+          <a-popover>
+            <template #content>
+              {{ text }}
+            </template>
+            <div style="width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">{{ text }}</div>
+          </a-popover>
+        </div>
+      </template>
+      <template #action="text, record">
+        <span>
+          <a @click="enquiryDetail(record)"> 详情</a>
+        </span>
+      </template>
     </a-table>
     <!--询盘详情-->
-    <enquiry-detail ref="enquiryDetail"></enquiry-detail>
+    <enquiry-detail ref="enquiryDetail" />
   </a-modal>
 </template>
 
 <script>
-  import { putAction, deleteAction, postAction, getAction } from '/@/api/manage/manage'
-  import enquiryDetail from '/@/views/adweb/enquiry/modules/enquiryDetail.vue'
+  import { getAction } from '/@/api/manage/manage';
+  import { JeecgListMixin } from '/@/hooks/component/JeecgListMixin';
+  import enquiryDetail from '/@/views/adweb/enquiry/modules/enquiryDetail.vue';
 
   export default {
     name: 'XpRecycleBinModal',
-
-    components:{enquiryDetail},
+    components: { enquiryDetail },
+    mixins: [JeecgListMixin],
     data() {
       return {
         title: '',
         loading: false,
         innerVisible: false,
         dataSource: [],
-        visible:false,
+        visible: false,
         columns: [],
         url: {
           list: '/adweb/adwebEnquiry/getWastedEnquiry',
         },
-        disableMixinCreated:true,
-        ip:'',
-      }
+        disableMixinCreated: true,
+        ip: '',
+      };
     },
 
     methods: {
-      init(ip){
-        let that = this
+      init(ip) {
+        let that = this;
         that.columns = [
-            { title: '站点名称', align: 'left', dataIndex: 'siteName', scopedSlots: { customRender: 'contactSlot' }},
-            { title: '姓名', align: 'left', dataIndex: 'contact', scopedSlots: { customRender: 'contactSlot' }},
-            { title: '邮箱', align: 'left', dataIndex: 'fromEmail', scopedSlots: { customRender: 'contactSlot' } },
-            { title: '电话', align: 'left', dataIndex: 'phone' },
-            { title: '询盘时间', align: 'left', dataIndex: 'recordCtime' },
-            { title: '操作', align: 'center', dataIndex: 'action', scopedSlots: { customRender: 'action' } }
-          ]
-        that.ip = ip
+          { title: '站点名称', align: 'left', dataIndex: 'siteName', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '姓名', align: 'left', dataIndex: 'contact', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '邮箱', align: 'left', dataIndex: 'fromEmail', scopedSlots: { customRender: 'contactSlot' } },
+          { title: '电话', align: 'left', dataIndex: 'phone' },
+          { title: '询盘时间', align: 'left', dataIndex: 'recordCtime' },
+          { title: '操作', align: 'center', dataIndex: 'action', scopedSlots: { customRender: 'action' } },
+        ];
+        that.ip = ip;
         that.loadData(ip);
-        console.log(ip)
-        that.visible = true
+        console.log(ip);
+        that.visible = true;
       },
 
       //询盘详情
-      enquiryDetail(record){
+      enquiryDetail(record) {
         this.$nextTick(() => {
-          this.$refs.enquiryDetail.init(record)
-        })
+          this.$refs.enquiryDetail.init(record);
+        });
       },
       searchQuery() {
         this.loadData(this.ip);
       },
 
       searchReset() {
-        this.queryParam = {}
+        this.queryParam = {};
         this.loadData(this.ip);
       },
 
-
       handleCancel() {
-        this.queryParam = {}
-        this.visible = false
+        this.queryParam = {};
+        this.visible = false;
       },
 
       loadData(ip) {
-        if(!this.url.list){
-          this.$message.error("请设置url.list属性!")
-          return
+        if (!this.url.list) {
+          this.$message.error('请设置url.list属性!');
+          return;
         }
-        var params = this.getQueryParams();//查询条件
+        var params = this.getQueryParams(); //查询条件
         this.loading = true;
         params.ip = ip;
         params.wasteEnquiryType = 'ip';
@@ -124,15 +121,14 @@
           if (res.success) {
             this.dataSource = res.result;
           }
-          if(res.code===510){
-            this.$message.warning(res.message)
+          if (res.code === 510) {
+            this.$message.warning(res.message);
           }
           this.loading = false;
-        })
+        });
       },
-
-    }
-  }
+    },
+  };
 </script>
 
 <style lang="less" scoped></style>

+ 1 - 1
src/views/adweb/enquiryPublicRules/publicRuleList/modules/AdwebEnquiryRuleModal.vue

@@ -1,5 +1,5 @@
 <template>
-  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" :visible="visible">
+  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" v-model:open="visible">
     <adweb-enquiry-rule-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit" normal />
     <div class="drawer-footer">
       <a-button @click="handleCancel" style="margin-bottom: 0">关闭</a-button>

+ 1 - 1
src/views/adweb/enquiryPublicRules/publicRuleList/modules/XpRecycleBinModal.vue

@@ -2,7 +2,7 @@
   <a-modal
     :width="1200"
     :title="title"
-    :visible="visible"
+    v-model:open="visible"
     :destroyOnClose="true"
     @cancel="handleCancel"
     cancelText="关闭"

+ 1 - 1
src/views/adweb/enquirySiteRules/siteBlackEmail/modules/EnquirySiteBlackEmailModal.vue

@@ -1,5 +1,5 @@
 <template>
-  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" :visible="visible">
+  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" v-model:open="visible">
     <enquiry-site-black-email-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit" normal />
     <div class="drawer-footer">
       <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0">提交</a-button>

+ 1 - 1
src/views/adweb/enquirySiteRules/siteBlackIp/modules/AdwebSiteBlackIpModal.vue

@@ -1,5 +1,5 @@
 <template>
-  <a-drawer :title="title" :width="width" placement="right" :closable="true" @close="close" :visible="visible">
+  <a-drawer :title="title" :width="width" placement="right" :closable="true" @close="close" v-model:open="visible">
     <adweb-site-black-ip-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit" normal />
     <div class="drawer-footer">
       <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0">提交</a-button>

+ 1 - 1
src/views/adweb/enquirySiteRules/siteRuleList/modules/AdwebEnquirySiteRuleModal.vue

@@ -1,5 +1,5 @@
 <template>
-  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" :visible="visible">
+  <a-drawer :title="title" :width="width" placement="right" :closable="false" @close="close" v-model:open="visible">
     <adweb-enquiry-site-rule-form ref="realFormRef" @ok="submitCallback" :disabled="disableSubmit" normal />
     <div class="drawer-footer">
       <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0">提交</a-button>

+ 1 - 1
src/views/adweb/enquirySiteRules/siteRuleList/modules/XpRecycleBinModal.vue

@@ -2,7 +2,7 @@
   <a-modal
     :width="1200"
     :title="title"
-    :visible="visible"
+    v-model:open="visible"
     :destroyOnClose="true"
     @cancel="handleCancel"
     cancelText="关闭"

+ 14 - 6
src/views/adweb/product/components/AdwebProductModal.vue

@@ -1,14 +1,22 @@
 <template>
-  <j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
-    <AdwebProductForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></AdwebProductForm>
+  <j-modal
+    :title="title"
+    :width="width"
+    v-model:open="visible"
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <AdwebProductForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false" />
   </j-modal>
 </template>
 
 <script lang="ts" setup>
   import { ref, nextTick, defineExpose } from 'vue';
-  import AdwebProductForm from './AdwebProductForm.vue'
+  import AdwebProductForm from './AdwebProductForm.vue';
   import JModal from '/@/components/Modal/src/JModal/JModal.vue';
-  
+
   const title = ref<string>('');
   const width = ref<number>(800);
   const visible = ref<boolean>(false);
@@ -26,7 +34,7 @@
       registerForm.value.add();
     });
   }
-  
+
   /**
    * 编辑
    * @param record
@@ -38,7 +46,7 @@
       registerForm.value.edit(record);
     });
   }
-  
+
   /**
    * 确定按钮点击事件
    */

+ 2 - 2
src/views/adweb/site/AdwebSite.data.ts

@@ -1,5 +1,5 @@
 import { BasicColumn } from '/src/components/Table';
-import moment from 'moment';
+import dayjs from 'dayjs';
 
 //列表数据
 export const columns: BasicColumn[] = [
@@ -68,7 +68,7 @@ export const columns: BasicColumn[] = [
     align: 'left',
     dataIndex: 'publishTime',
     customRender: function ({ text, record }) {
-      return moment(record.ctime).add(1, 'month').format('YYYY-MM-DD');
+      return dayjs(record.ctime).add(1, 'month').format('YYYY-MM-DD');
     },
   },
   {

+ 11 - 3
src/views/adweb/site/components/AdwebSiteModal.vue

@@ -1,12 +1,20 @@
 <template>
-  <j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
-    <AdwebSiteForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></AdwebSiteForm>
+  <j-modal
+    :title="title"
+    :width="width"
+    v-model:open="visible"
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <AdwebSiteForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false" />
   </j-modal>
 </template>
 
 <script lang="ts" setup>
   import { ref, nextTick, defineExpose } from 'vue';
-  import AdwebSiteForm from './AdwebSiteForm.vue'
+  import AdwebSiteForm from './AdwebSiteForm.vue';
   import JModal from '/src/components/Modal/src/JModal/JModal.vue';
 
   const title = ref<string>('');

+ 1 - 1
src/views/adweb/site/components/GtmAdd.vue

@@ -6,7 +6,7 @@
     placement="right"
     :closable="true"
     @close="handleCancel"
-    :visible="modalVisible"
+    v-model:open="modalVisible"
     :ok-button-props="okBtnStatus"
     destroy-on-close
     style="overflow: auto; padding-bottom: 53px"

+ 1 - 1
src/views/adweb/site/components/SiteSetEnquiry.vue

@@ -6,7 +6,7 @@
     placement="right"
     :closable="true"
     @close="handleCancel"
-    :visible="modalVisible"
+    v-model:open="modalVisible"
     :ok-button-props="okBtnStatus"
     destroy-on-close
     style="overflow: auto; padding-bottom: 53px"

+ 250 - 258
src/views/adweb/subscribePlan/components/IntegrityCheckingDrawer.vue

@@ -1,89 +1,83 @@
 <template>
-
-  <a-drawer
-    title="物料检测标准"
-    :width="1200"
-    :visible="visible"
-    :body-style="{ paddingBottom: '24px' }"
-    @close="closeDraw"
-  >
+  <a-drawer title="物料检测标准" :width="1200" v-model:open="visible" :body-style="{ paddingBottom: '24px' }" @close="closeDraw">
     <a-row :gutter="16" style="margin-bottom: 20px">
       <a-col :span="3">
-        <a-button type="primary" @click="submitAll" :loading="loading" :disabled="submitDisable">
-          保存
-        </a-button>
+        <a-button type="primary" @click="submitAll" :loading="loading" :disabled="submitDisable"> 保存 </a-button>
       </a-col>
     </a-row>
     <a-table :columns="columns" :data-source="data" :pagination="false">
-      <template
-        v-for="col in ['weight']"
-        :slot="col"
-        slot-scope="text, record, index"
-        :key="col"
-      >
+      <template v-for="col in ['weight']" #[col]="text, record, index" :key="col">
         <div>
           <a-input-number
             v-if="record.editable"
             style="margin: -5px 0"
             :value="text"
             :autoFocus="true"
-            @change="e => handleChange(e, record.key, col)"
+            @change="(e) => handleChange(e, record.key, col)"
             :min="0"
             :step="0.1"
-            :formatter="(value)=>{
-      let reg = /^(-)*(\d+)\.(\d).*$/;
-      return `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',').replace(reg,'$1$2.$3');
-    }"
-            :parser="(value)=>{
-      let reg = /^(-)*(\d+)\.(\d).*$/;
-      return value.replace(/\s?|(,*)/g, '').replace(reg,'$1$2.$3');
-    }"
+            :formatter="
+              (value) => {
+                let reg = /^(-)*(\d+)\.(\d).*$/;
+                return `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',').replace(reg, '$1$2.$3');
+              }
+            "
+            :parser="
+              (value) => {
+                let reg = /^(-)*(\d+)\.(\d).*$/;
+                return value.replace(/\s?|(,*)/g, '').replace(reg, '$1$2.$3');
+              }
+            "
           />
           <template v-else>
             {{ text }}
           </template>
         </div>
       </template>
-      <template
-        v-for="col in ['limitMin']"
-        :slot="col"
-        slot-scope="text, record, index"
-        :key="col"
-      >
+      <template v-for="col in ['limitMin']" #[col]="text, record, index" :key="col">
         <div>
           <a-input-number
             v-if="record.editable"
             style="margin: -5px 0"
             :value="text"
-            @change="e => handleChange(e, record.key, col)"
+            @change="(e) => handleChange(e, record.key, col)"
             :min="0"
             :step="1"
             :autoFocus="true"
-            :formatter="(value)=>{
-              if (typeof value === 'string') {
-                return !isNaN(Number(value)) ? value.replace(/^(0+)|[^\d]/g, '') : ''
-              }else if (typeof value === 'number') {
-                return !isNaN(value) ? String(value).replace(/^(0+)|[^\d]/g, '') : ''}
-              else {
-                return ''
-              }}"/>
+            :formatter="
+              (value) => {
+                if (typeof value === 'string') {
+                  return !isNaN(Number(value)) ? value.replace(/^(0+)|[^\d]/g, '') : '';
+                } else if (typeof value === 'number') {
+                  return !isNaN(value) ? String(value).replace(/^(0+)|[^\d]/g, '') : '';
+                } else {
+                  return '';
+                }
+              }
+            "
+          />
           <template v-else>
             {{ text }}
           </template>
         </div>
       </template>
 
-      <template slot="required" slot-scope="text, record">
-        <a-switch checked-children="是" un-checked-children="否" :autoFocus="true"
-                  :checked="record.required === 0" @change="changeRequired(record)"
-                  :loading="changeLoading"/>
+      <template #required="text, record">
+        <a-switch
+          checked-children="是"
+          un-checked-children="否"
+          :autoFocus="true"
+          :checked="record.required === 0"
+          @change="changeRequired(record)"
+          :loading="changeLoading"
+        />
       </template>
 
-      <template slot="operation" slot-scope="text, record, index">
+      <template #operation="text, record, index">
         <div class="editable-row-operations">
           <span v-if="record.editable">
             <a @click="() => save(record.key)">保存</a>
-            <a-divider type="vertical"/>
+            <a-divider type="vertical" />
             <a-popconfirm title="确定取消吗?" @confirm="() => cancel(record.key)">
               <a>取消</a>
             </a-popconfirm>
@@ -93,234 +87,232 @@
           </span>
         </div>
       </template>
-      <template slot="sort" slot-scope="text, record, index">
-        <a-tag color="pink" @click="up(index)" style="cursor: pointer"
-               :class="index == 0 ? 'disabled' : '' ">
-          <a-icon type="arrow-up"/>
+      <template #sort="text, record, index">
+        <a-tag color="pink" @click="up(index)" style="cursor: pointer" :class="index == 0 ? 'disabled' : ''">
+          <a-icon type="arrow-up" />
         </a-tag>
-        <a-tag color="blue" @click="down(index)" style="cursor: pointer"
-               :class="index === data.length-1 ? 'disabled' : '' ">
-          <a-icon type="arrow-down"/>
+        <a-tag color="blue" @click="down(index)" style="cursor: pointer" :class="index === data.length - 1 ? 'disabled' : ''">
+          <a-icon type="arrow-down" />
         </a-tag>
       </template>
     </a-table>
-
-
   </a-drawer>
 </template>
 
 <script>
-import { getAction, postAction } from '/src/api/manage/manage'
+  import { getAction, postAction } from '/src/api/manage/manage';
 
-export default {
-  name: 'IntegrityCheckingDrawer',
+  export default {
+    name: 'IntegrityCheckingDrawer',
 
-  data() {
-    return {
-      visible: false,
-      columns: [
-        {
-          title: '物料名称',
-          dataIndex: 'materialLabel',
-          align: 'center'
-        },
-        {
-          title: '最低限制',
-          dataIndex: 'limitMin',
-          align: 'center',
-          scopedSlots: {customRender: 'limitMin'}
-        },
-        {
-          title: '评分占比',
-          dataIndex: 'weight',
-          align: 'center',
-          scopedSlots: {customRender: 'weight'}
-        },
-        {
-          title: '是否必填',
-          dataIndex: 'required',
-          align: 'center',
-          scopedSlots: {customRender: 'required'}
-        },
-        {
-          title: '排序',
-          dataIndex: 'sort',
-          align: 'center',
-          scopedSlots: {customRender: 'sort'}
-        },
-        {
-          title: '操作',
-          dataIndex: 'operation',
-          align: 'center',
-          scopedSlots: {customRender: 'operation'}
+    data() {
+      return {
+        visible: false,
+        columns: [
+          {
+            title: '物料名称',
+            dataIndex: 'materialLabel',
+            align: 'center',
+          },
+          {
+            title: '最低限制',
+            dataIndex: 'limitMin',
+            align: 'center',
+            scopedSlots: { customRender: 'limitMin' },
+          },
+          {
+            title: '评分占比',
+            dataIndex: 'weight',
+            align: 'center',
+            scopedSlots: { customRender: 'weight' },
+          },
+          {
+            title: '是否必填',
+            dataIndex: 'required',
+            align: 'center',
+            scopedSlots: { customRender: 'required' },
+          },
+          {
+            title: '排序',
+            dataIndex: 'sort',
+            align: 'center',
+            scopedSlots: { customRender: 'sort' },
+          },
+          {
+            title: '操作',
+            dataIndex: 'operation',
+            align: 'center',
+            scopedSlots: { customRender: 'operation' },
+          },
+        ],
+        data: [],
+        cacheData: [],
+        editingKey: '',
+        sortChanged: false, // 判断排序是否改变,排序改变则在关闭的时候进行统一保存
+        loading: false,
+        loading2: false,
+        id: '',
+        changeLoading: false,
+        submitDisable: false,
+      };
+    },
+    methods: {
+      submitAll() {
+        let d = this.data;
+        let weight = 0;
+        for (let i in d) {
+          weight += parseFloat(d[i].weight);
         }
-      ],
-      data: [],
-      cacheData: [],
-      editingKey: '',
-      sortChanged: false, // 判断排序是否改变,排序改变则在关闭的时候进行统一保存
-      loading: false,
-      loading2: false,
-      id: '',
-      changeLoading: false,
-      submitDisable: false,
-    }
-  },
-  methods: {
-    submitAll() {
-      let d = this.data
-      let weight = 0
-      for (let i in d) {
-        weight += parseFloat(d[i].weight)
-      }
-      if (parseFloat(weight) !== 100) {
-        this.$message.error('权重之和应为100')
-        return
-      }
-      this.loading = true
-      postAction('/serp/seoMarketPlan/saveTemplate', {
-        checkList: JSON.stringify(d),
-        planId: this.id
-      }).then((res) => {
-        this.loading = false
-        if (res.code == 200) {
-          this.$message.success('保存成功')
-          this.showDrawer(this.id)
-        } else {
-          this.$message.error(res.message)
+        if (parseFloat(weight) !== 100) {
+          this.$message.error('权重之和应为100');
+          return;
         }
-      }).catch(e => {
-        this.$message.error('保存数据失败!')
-      })
-    },
-    showDrawer(id) {
-      let that = this
-      that.id = id
-      getAction('/serp/seoMarketPlan/integrityChecking?planId=' + id).then((res) => {
-        if (res.success) {
-          that.data = res.result
-          for (let i = 0; i < that.data.length; i++) {
-            let item = that.data[i]
-            item.key = item.id
-          }
-          that.cacheData = that.data.map(item => ({...item}))
+        this.loading = true;
+        postAction('/serp/seoMarketPlan/saveTemplate', {
+          checkList: JSON.stringify(d),
+          planId: this.id,
+        })
+          .then((res) => {
+            this.loading = false;
+            if (res.code == 200) {
+              this.$message.success('保存成功');
+              this.showDrawer(this.id);
+            } else {
+              this.$message.error(res.message);
+            }
+          })
+          .catch((e) => {
+            this.$message.error('保存数据失败!');
+          });
+      },
+      showDrawer(id) {
+        let that = this;
+        that.id = id;
+        getAction('/serp/seoMarketPlan/integrityChecking?planId=' + id)
+          .then((res) => {
+            if (res.success) {
+              that.data = res.result;
+              for (let i = 0; i < that.data.length; i++) {
+                let item = that.data[i];
+                item.key = item.id;
+              }
+              that.cacheData = that.data.map((item) => ({ ...item }));
+            }
+          })
+          .catch((e) => {
+            this.$message.warning('获取数据失败!');
+          });
+        this.visible = true;
+      },
+      closeDraw() {
+        let that = this;
+        that.visible = false;
+        that.data = [];
+        that.cacheData = [];
+        that.sortChanged = false;
+        that.record = {};
+      },
+      handleChange(value, key, column) {
+        const newData = [...this.data];
+        const target = newData.filter((item) => key === item.key)[0];
+        if (target) {
+          target[column] = value == null ? '' : value;
+          this.data = newData;
+        }
+      },
+      edit(key) {
+        const newData = [...this.data];
+        const target = newData.filter((item) => key === item.key)[0];
+        this.editingKey = key;
+        if (target) {
+          target.editable = true;
+          this.data = newData;
+        }
+        this.submitDisable = true;
+      },
+      save(key) {
+        const newData = [...this.data];
+        const newCacheData = [...this.cacheData];
+        const target = newData.filter((item) => key === item.key)[0];
+        const targetCache = newCacheData.filter((item) => key === item.key)[0];
+        if (target && targetCache) {
+          delete target.editable;
+          this.data = newData;
+          Object.assign(targetCache, target);
+          this.cacheData = newCacheData;
+        }
+        this.editingKey = '';
+        this.submitDisable = false;
+      },
+      cancel(key) {
+        const newData = [...this.data];
+        const target = newData.filter((item) => key === item.key)[0];
+        this.editingKey = '';
+        if (target) {
+          Object.assign(target, this.cacheData.filter((item) => key === item.key)[0]);
+          delete target.editable;
+          this.data = newData;
+        }
+        this.submitDisable = false;
+      },
+      up(index) {
+        let that = this;
+        if (that.editingKey !== '') {
+          that.$message.warn('请先完成编辑!');
+          return;
+        }
+        if (index === 0) {
+          return;
         }
-      }).catch(e => {
-        this.$message.warning('获取数据失败!')
-      })
-      this.visible = true
-    },
-    closeDraw() {
-      let that = this
-      that.visible = false
-      that.data = []
-      that.cacheData = []
-      that.sortChanged = false
-      that.record = {}
-    },
-    handleChange(value, key, column) {
-      const newData = [...this.data]
-      const target = newData.filter(item => key === item.key)[0]
-      if (target) {
-        target[column] = value == null ? '' : value
-        this.data = newData
-      }
-    },
-    edit(key) {
-      const newData = [...this.data]
-      const target = newData.filter(item => key === item.key)[0]
-      this.editingKey = key
-      if (target) {
-        target.editable = true
-        this.data = newData
-      }
-      this.submitDisable = true
-    },
-    save(key) {
-      const newData = [...this.data]
-      const newCacheData = [...this.cacheData]
-      const target = newData.filter(item => key === item.key)[0]
-      const targetCache = newCacheData.filter(item => key === item.key)[0]
-      if (target && targetCache) {
-        delete target.editable
-        this.data = newData
-        Object.assign(targetCache, target)
-        this.cacheData = newCacheData
-      }
-      this.editingKey = ''
-      this.submitDisable = false
-    },
-    cancel(key) {
-      const newData = [...this.data]
-      const target = newData.filter(item => key === item.key)[0]
-      this.editingKey = ''
-      if (target) {
-        Object.assign(target, this.cacheData.filter(item => key === item.key)[0])
-        delete target.editable
-        this.data = newData
-      }
-      this.submitDisable = false
-    },
-    up(index) {
-      let that = this
-      if (that.editingKey !== '') {
-        that.$message.warn('请先完成编辑!')
-        return
-      }
-      if (index === 0) {
-        return
-      }
-
-      that.sortChanged = true
 
-      // 修改展示顺序
-      let data2 = that.data
-      let temp1 = data2[index]
-      data2[index] = data2[index - 1]
-      data2[index - 1] = temp1
-      that.cacheData = data2.map(item => ({...item}))
-      that.data = that.cacheData
-    },
-    down(index) {
-      let that = this
-      if (that.editingKey !== '') {
-        that.$message.warn('请先完成编辑!')
-        return
-      }
-      if (index === that.data.length - 1) {
-        return
-      }
-      that.sortChanged = true
-      // 修改展示顺序
-      let data2 = that.data
-      let temp1 = data2[index]
-      data2[index] = data2[index + 1]
-      data2[index + 1] = temp1
-      that.cacheData = data2.map(item => ({...item}))
-      that.data = that.cacheData
-    },
+        that.sortChanged = true;
 
-    changeRequired(record) {
-      let that = this
-      that.changeLoading = true
-      postAction('/materialcollect/changeRequired?id=' + record.id + '&planId=' + record.planId).then((res) => {
-        if (res.success) {
-          that.$message.success(res.result)
-          that.showDrawer(that.id)
-        } else {
-          that.$message.error(res.message)
+        // 修改展示顺序
+        let data2 = that.data;
+        let temp1 = data2[index];
+        data2[index] = data2[index - 1];
+        data2[index - 1] = temp1;
+        that.cacheData = data2.map((item) => ({ ...item }));
+        that.data = that.cacheData;
+      },
+      down(index) {
+        let that = this;
+        if (that.editingKey !== '') {
+          that.$message.warn('请先完成编辑!');
+          return;
         }
-        that.changeLoading = false
-      })
-    },
-
+        if (index === that.data.length - 1) {
+          return;
+        }
+        that.sortChanged = true;
+        // 修改展示顺序
+        let data2 = that.data;
+        let temp1 = data2[index];
+        data2[index] = data2[index + 1];
+        data2[index + 1] = temp1;
+        that.cacheData = data2.map((item) => ({ ...item }));
+        that.data = that.cacheData;
+      },
 
-  }
-}
+      changeRequired(record) {
+        let that = this;
+        that.changeLoading = true;
+        postAction('/materialcollect/changeRequired?id=' + record.id + '&planId=' + record.planId).then((res) => {
+          if (res.success) {
+            that.$message.success(res.result);
+            that.showDrawer(that.id);
+          } else {
+            that.$message.error(res.message);
+          }
+          that.changeLoading = false;
+        });
+      },
+    },
+  };
 </script>
 <style lang="less" scoped>
-.ant-tag.disabled {
-  cursor: no-drop !important;
-  opacity: 0.3;
-}
+  .ant-tag.disabled {
+    cursor: no-drop !important;
+    opacity: 0.3;
+  }
 </style>

+ 1 - 1
src/views/adweb/subscribePlan/components/SubscribePlanModal.vue

@@ -2,7 +2,7 @@
   <j-modal
     :title="title"
     :width="width"
-    :visible="visible"
+    v-model:open="visible"
     @ok="handleOk"
     :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
     @cancel="handleCancel"

+ 8 - 1
src/views/adweb/system/modules/XpRecycleBinModal.vue

@@ -1,5 +1,12 @@
 <template>
-  <a-modal :width="1200" :title="title" :visible="visible" @cancel="handleCancel" cancelText="关闭" :okButtonProps="{ style: { display: 'none' } }">
+  <a-modal
+    :width="1200"
+    :title="title"
+    v-model:open="visible"
+    @cancel="handleCancel"
+    cancelText="关闭"
+    :okButtonProps="{ style: { display: 'none' } }"
+  >
     <a-alert type="info" showIcon style="margin-bottom: 16px">
       <template #message>
         <span>已选择</span>

+ 14 - 6
src/views/adweb/theme/components/AdwebThemeModal.vue

@@ -1,14 +1,22 @@
 <template>
-  <j-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
-    <AdwebThemeForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></AdwebThemeForm>
+  <j-modal
+    :title="title"
+    :width="width"
+    v-model:open="visible"
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <AdwebThemeForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false" />
   </j-modal>
 </template>
 
 <script lang="ts" setup>
   import { ref, nextTick, defineExpose } from 'vue';
-  import AdwebThemeForm from './AdwebThemeForm.vue'
+  import AdwebThemeForm from './AdwebThemeForm.vue';
   import JModal from '/@/components/Modal/src/JModal/JModal.vue';
-  
+
   const title = ref<string>('');
   const width = ref<number>(800);
   const visible = ref<boolean>(false);
@@ -26,7 +34,7 @@
       registerForm.value.add();
     });
   }
-  
+
   /**
    * 编辑
    * @param record
@@ -38,7 +46,7 @@
       registerForm.value.edit(record);
     });
   }
-  
+
   /**
    * 确定按钮点击事件
    */