Browse Source

Merge branch 'master' of gitea.intra.yunpaper.com:zhangqi/kuailelunwen_new_houtai into zq-nodeTest

zq-nodeTest
zq 6 months ago
parent
commit
e33c063bd1
  1. 12066
      package-lock.json
  2. BIN
      src/assets/home/kf.png
  3. BIN
      src/assets/home/supplyPrice1.png
  4. BIN
      src/assets/home/supplyPrice2.png
  5. BIN
      src/assets/home/supplyPrice3.png
  6. BIN
      src/assets/msg.wav
  7. 1
      src/assets/serviceIcon/ver_1.svg
  8. 1
      src/assets/serviceIcon/ver_12.svg
  9. 1
      src/assets/serviceIcon/ver_13.svg
  10. 1
      src/assets/serviceIcon/ver_15.svg
  11. 1
      src/assets/serviceIcon/ver_16.svg
  12. 1
      src/assets/serviceIcon/ver_17.svg
  13. 1
      src/assets/serviceIcon/ver_18.svg
  14. 1
      src/assets/serviceIcon/ver_19.svg
  15. 1
      src/assets/serviceIcon/ver_2.svg
  16. 1
      src/assets/serviceIcon/ver_20.svg
  17. 1
      src/assets/serviceIcon/ver_21.svg
  18. 1
      src/assets/serviceIcon/ver_3.svg
  19. 1
      src/assets/serviceIcon/ver_34.svg
  20. 1
      src/assets/serviceIcon/ver_37.svg
  21. 1
      src/assets/serviceIcon/ver_38.svg
  22. 1
      src/assets/serviceIcon/ver_4.svg
  23. 1
      src/assets/serviceIcon/ver_40.svg
  24. 1
      src/assets/serviceIcon/ver_42.svg
  25. 1
      src/assets/serviceIcon/ver_43.svg
  26. 1
      src/assets/serviceIcon/ver_6.svg
  27. 1
      src/assets/serviceIcon/ver_7.svg
  28. 1
      src/assets/serviceIcon/ver_8.svg
  29. 1
      src/assets/serviceIcon/ver_9.svg
  30. BIN
      src/assets/site/invalid.png
  31. BIN
      src/assets/site/show_and_hide.png
  32. 1
      src/assets/site/star-active-icon.svg
  33. 1
      src/assets/site/star-icon.svg
  34. 115
      src/components/GuipSwitch.vue
  35. 48
      src/components/SliderScond.vue
  36. 18
      src/components/bindGoods.vue
  37. 15
      src/components/paymentMethod.vue
  38. 16
      src/components/site/addSiteStep/step2.vue
  39. 362
      src/components/site/addSiteStep/step3.vue
  40. 2
      src/components/site/serviceSetting/priceSet.vue
  41. 2
      src/router/index.js
  42. 4
      src/store/index.js
  43. 179
      src/views/agent/checkOrderList.vue
  44. 281
      src/views/agent/home.vue
  45. 6
      src/views/agent/payCertSetting.vue
  46. 20
      src/views/agent/payList.vue
  47. 4
      src/views/agent/paySetting.vue
  48. 4
      src/views/agent/siteMobileSetting.vue
  49. 988
      src/views/agent/siteServiceAdd.vue
  50. 82
      src/views/agent/siteServiceList.vue
  51. 37
      src/views/elementGroups.vue

12066
package-lock.json

File diff suppressed because it is too large

BIN
src/assets/home/kf.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

BIN
src/assets/home/supplyPrice1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

BIN
src/assets/home/supplyPrice2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

BIN
src/assets/home/supplyPrice3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

BIN
src/assets/msg.wav

Binary file not shown.

1
src/assets/serviceIcon/ver_1.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g><g><g><path d="M5 4.992727279663086C5 4.992727279663086 5 4.992727279663086 5 4.992727279663086L25 4.992727279663086C25 4.992727279663086 25 4.992727279663086 25 4.992727279663086L25 24.847272872924805C25 24.847272872924805 25 24.847272872924805 25 24.847272872924805L5 24.847272872924805C5 24.847272872924805 5 24.847272872924805 5 24.847272872924805Z" fill-opacity="0" stroke-opacity="1" stroke="#E6121D" fill="none" stroke-width="2.470416784286499"/></g><g><path d="M13.307692527770996 4C13.307692527770996 4 13.307692527770996 4 13.307692527770996 4L15.846153974533081 4C15.846153974533081 4 15.846153974533081 4 15.846153974533081 4L15.846153974533081 25C15.846153974533081 25 15.846153974533081 25 15.846153974533081 25L13.307692527770996 25C13.307692527770996 25 13.307692527770996 25 13.307692527770996 25Z" fill="#E6121D" fill-opacity="1"/></g><g><path d="M15 13.239999771118164C15 13.239999771118164 15 13.239999771118164 15 13.239999771118164L26 13.239999771118164C26 13.239999771118164 26 13.239999771118164 26 13.239999771118164L26 15.759999752044678C26 15.759999752044678 26 15.759999752044678 26 15.759999752044678L15 15.759999752044678C15 15.759999752044678 15 15.759999752044678 15 15.759999752044678Z" fill="#E6121D" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1
src/assets/serviceIcon/ver_12.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.3 KiB

1
src/assets/serviceIcon/ver_13.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.9 KiB

1
src/assets/serviceIcon/ver_15.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

1
src/assets/serviceIcon/ver_16.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.8 KiB

1
src/assets/serviceIcon/ver_17.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><defs><linearGradient x1="0.9026411771774292" y1="0.16035354137420654" x2="0.384563587732477" y2="0.8819980046816556" id="master_svg0_0_565"><stop offset="0%" stop-color="#0D2D4B" stop-opacity="1"/><stop offset="100%" stop-color="#36526D" stop-opacity="1"/></linearGradient></defs><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g><g><g><path d="M8.066666722297668 22.642857909202576C8.066666722297668 21.893328634076845 8.674280253225099 21.285715103149414 9.42380952835083 21.285715103149414L17.909523725509644 21.285715103149414C18.659053000635375 21.285715103149414 19.266666531562805 21.893328634076845 19.266666531562805 22.642857909202576L19.266666531562805 22.642857909202576C19.266666531562805 23.392387184328307 18.659053000635375 24.000000715255737 17.909523725509644 24.000000715255737L9.42380952835083 24.000000715255737C8.674280253225099 24.000000715255737 8.066666722297668 23.392387184328307 8.066666722297668 22.642857909202576Z" fill="#B0B0AF" fill-opacity="1"/></g><g><path d="M10.33333,13.40136L7,16.6327Q10,18.5714,11,19.8639Q12,21.1565,13.66667,23.0952Q16.311700000000002,18.266,18,15.9864Q19.688299999999998,13.70682,23,10.4932Q22.6667,8.87755,22.6667,7.9081600000000005Q22.6667,6.9387799999999995,23,5Q19.4441,8.61652,17.6667,11.13946Q15.88928,13.66239,13.66667,18.2483L10.33333,13.40136Z" fill-rule="evenodd" fill="url(#master_svg0_0_565)" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

1
src/assets/serviceIcon/ver_18.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><g><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g></g><g><g><path d="M21.0857,5C23.2087,5,24.9062,6.6555599999999995,24.9959,8.696L25,8.867049999999999L25,22.1329C25,24.1948,23.3601,25.9053,21.2618,25.9962L21.0857,26L8.91427,26C6.79134,26,5.0938153,24.3444,5.00412553,22.304L5.0000113233,22.1329L5.0000113233,19.641199999999998C4.99745767,19.1313,5.427143,18.709600000000002,5.975833,18.683500000000002C6.52452,18.6573,6.99847,19.036,7.05218,19.5435L7.057119999999999,19.641199999999998L7.057119999999999,22.1329C7.057119999999999,23.1868,7.84211,24.0214,8.79413,24.0871L8.91427,24.0909L21.0857,24.0909C22.0509,24.0909,22.8746,23.299,22.9388,22.2635L22.9429,22.1329L22.9429,8.867049999999999C22.9429,7.81324,22.1579,6.97858,21.2059,6.91291L21.0857,6.90909L8.91427,6.90909C7.94908,6.90909,7.1254100000000005,7.7009799999999995,7.06123,8.73647L7.057119999999999,8.867049999999999L7.057119999999999,15.1655C7.05535,15.6725,6.62686,16.0897,6.08131,16.1157C5.535756,16.1417,5.0634753,15.7674,5.00577121,15.2633L5.0000113233,15.1655L5.0000113233,8.867049999999999C5.0000113233,6.8052399999999995,6.63993,5.0946909,8.73818,5.00381818L8.91427,5L21.0857,5Z" fill="#E6121D" fill-opacity="1"/></g><g><path d="M19.734397602996825,12.396264118743897C19.706237602996826,11.887053118743896,19.251817602996827,11.488284578743896,18.702417602996825,11.490654486743896L11.296837602996826,11.490654486743896L11.191517602996827,11.495236308743896C10.644733602996826,11.545078218743896,10.236697602996825,11.984925118743897,10.264858602996826,12.494138118743896C10.293018602996826,13.003348118743897,10.747432602996826,13.402118118743896,11.296837602996826,13.399748118743897L18.702417602996825,13.399748118743897L18.807737602996824,13.395168118743896C19.354517602996825,13.345318118743897,19.76255760299683,12.905478118743897,19.734397602996825,12.396264118743897ZM17.389677602996827,17.7419681187439C17.361517602996827,17.232758118743895,16.907097602996828,16.833988118743896,16.357697602996826,16.836358118743895L11.173787602996827,16.836358118743895L11.068468602996827,16.840938118743896C10.521686602996827,16.890778118743896,10.113650802996826,17.330628118743896,10.141811292996826,17.8398381187439C10.169971802996827,18.349048118743895,10.624385602996826,18.747818118743897,11.173787602996827,18.745448118743894L16.357697602996826,18.745448118743894L16.46301760299683,18.740868118743897C17.009797602996827,18.691028118743898,17.417837602996826,18.251178118743898,17.389677602996827,17.7419681187439Z" fill-rule="evenodd" fill="#E6121D" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

1
src/assets/serviceIcon/ver_19.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

1
src/assets/serviceIcon/ver_2.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g><g><path d="M8.426,7.834Q10.154,7.834,11.432,8.437000000000001Q12.71,9.04,13.394,10.165Q14.078,11.29,14.078,12.802Q14.078,14.314,13.412,15.43Q12.746,16.546,11.513,17.149Q10.28,17.752000000000002,8.606,17.752000000000002L6.338,17.752000000000002L6.338,22.324L3.1879999999999997,22.324L3.1879999999999997,7.834L8.426,7.834ZM7.958,14.89Q9.308,14.89,10.082,14.332Q10.856,13.774,10.856,12.802Q10.856,11.83,10.082,11.263Q9.308,10.696,7.958,10.696L6.338,10.696L6.338,14.89L7.958,14.89ZM21.224,7.834Q22.952,7.834,24.23,8.437000000000001Q25.508,9.04,26.192,10.165Q26.876,11.29,26.876,12.802Q26.876,14.314,26.21,15.43Q25.544,16.546,24.311,17.149Q23.078,17.752000000000002,21.404,17.752000000000002L19.136,17.752000000000002L19.136,22.324L15.986,22.324L15.986,7.834L21.224,7.834ZM20.756,14.89Q22.106,14.89,22.88,14.332Q23.654,13.774,23.654,12.802Q23.654,11.83,22.88,11.263Q22.106,10.696,20.756,10.696L19.136,10.696L19.136,14.89L20.756,14.89Z" fill="#0EC47B" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

1
src/assets/serviceIcon/ver_20.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

1
src/assets/serviceIcon/ver_21.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><defs><pattern x="4" y="7" width="22.3125" height="17" patternUnits="userSpaceOnUse" id="master_svg0_1_54020"><image x="0" y="0" width="59" height="44" transform="scale(0.3781779661016949,0.38636363636363635)" xlink:href="data:image/png;base64,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"/></pattern></defs><g><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g></g><g><rect x="4" y="7" width="22.3125" height="17" rx="0" fill="url(#master_svg0_1_54020)" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

1
src/assets/serviceIcon/ver_3.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

1
src/assets/serviceIcon/ver_34.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.3 KiB

1
src/assets/serviceIcon/ver_37.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

1
src/assets/serviceIcon/ver_38.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><defs><mask id="master_svg0_724_009980/13_02276" style="mask-type:alpha" maskUnits="objectBoundingBox"><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#FFFFFF" fill-opacity="1"/></g></mask><linearGradient x1="0.13388921320438385" y1="0.0862688198685646" x2="0.7620323910106643" y2="1.0238517411015045" id="master_svg1_0_13639"><stop offset="0%" stop-color="#FDAD81" stop-opacity="1"/><stop offset="100%" stop-color="#FD5D43" stop-opacity="1"/></linearGradient></defs><g><g><g mask="url(#master_svg0_724_009980/13_02276)"><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g></g></g><g><g><rect x="4" y="4" width="19.25" height="22" rx="3" fill="url(#master_svg1_0_13639)" fill-opacity="1"/></g><g><g><path d="M13.26295,14.637950012551453L9.50628,14.637950012551453C8.744645,14.637950012551453,8.125,14.018320012551452,8.125,13.256670012551453L8.125,10.881280012551453C8.125,10.119645012551453,8.744632,9.500000012551453,9.50628,9.500000012551453L11.88167,9.500000012551453C12.6433,9.500000012551453,13.26295,10.119632012551453,13.26295,10.881280012551453L13.26295,14.637950012551453Z" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M17.743720122528075,14.63795L13.962520122528076,14.63795L13.962520122528076,10.88128C13.962520122528076,10.119645,14.582152122528075,9.5000000125515,15.343800122528076,9.5000000125515L17.743720122528075,9.5C18.505360122528074,9.5,19.12500012252808,10.119632,19.12500012252808,10.88128L19.12500012252808,13.256689999999999C19.12500012252808,14.01832,18.505360122528074,14.63795,17.743720122528075,14.63795Z" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M11.88168,20.500001525878908L9.50628,20.500001525878908C8.744645,20.500001525878908,8.125,19.880371525878907,8.125,19.118721525878907L8.125,16.718781525878907C8.125,15.957146525878906,8.744632,15.337501525878906,9.50628,15.337501525878906L13.26295,15.337501525878906L13.26295,19.118721525878907C13.26295,19.880351525878908,12.64332,20.500001525878908,11.88168,20.500001525878908Z" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M17.743717247924806,20.500001525878908L15.343787247924805,20.500001525878908C14.582152247924805,20.500001525878908,13.962507247924805,19.880371525878907,13.962507247924805,19.118721525878907L13.962507247924805,15.337501525878906L17.743717247924806,15.337501525878906C18.505357247924806,15.337501525878906,19.124997247924803,15.957133525878906,19.124997247924803,16.718781525878907L19.124997247924803,19.118731525878907C19.124997247924803,19.880351525878908,18.505357247924806,20.500001525878908,17.743717247924806,20.500001525878908Z" fill="#FFFFFF" fill-opacity="1"/></g></g><g><rect x="15.550000190734863" y="14.449999809265137" width="10.449999809265137" height="11.550000190734863" rx="2.5" fill="#FDAB7F" fill-opacity="0.5699999928474426"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

1
src/assets/serviceIcon/ver_4.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

1
src/assets/serviceIcon/ver_40.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

1
src/assets/serviceIcon/ver_42.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.3 KiB

1
src/assets/serviceIcon/ver_43.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.9 KiB

1
src/assets/serviceIcon/ver_6.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 40 KiB

1
src/assets/serviceIcon/ver_7.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><g><g><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g></g></g><g><ellipse cx="15" cy="15" rx="12" ry="12" fill="#00A5F1" fill-opacity="1"/></g><g><path d="M9.172,16.842L5.126,9.982L8.08,9.982L10.362,14.714L10.446,14.714L12.728,9.982L15.696,9.982L11.636,16.842L11.636,21.252000000000002L9.172,21.252000000000002L9.172,16.842ZM19.21,16.842L15.164,9.982L18.118000000000002,9.982L20.4,14.714L20.484,14.714L22.766,9.982L25.734,9.982L21.674,16.842L21.674,21.252000000000002L19.21,21.252000000000002L19.21,16.842Z" fill="#F6F7FA" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/serviceIcon/ver_8.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

1
src/assets/serviceIcon/ver_9.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="30" height="30" viewBox="0 0 30 30"><g><g><path d="M0 2.5208332538604736C2.452636981645965e-16 1.1286154908869968 1.1286154908869972 0 2.5208332538604736 0L27.479166746139526 0C28.871384509113003 0 30 1.1286154908869972 30 2.5208332538604736L30 27.479166746139526C30 28.871384509113003 28.871384509113003 30 27.479166746139526 30L2.5208332538604736 30C1.1286154908869972 30 0 28.871384509113003 0 27.479166746139526Z" fill="#F6F7FA" fill-opacity="1"/></g><g><ellipse cx="15" cy="15" rx="12" ry="12" fill="#29B447" fill-opacity="1"/></g><g><g><path d="" fill="#FFFFFF" fill-opacity="0"/><path d="M22.1961,19.325200000000002L22.2078,19.0417L22.5259,11.28718L22.3806,11.04237Q21.2954,9.21349,19.4241,8.141562Q17.5011,7.04,15.25806,7.04Q11.86293,7.04,9.45787,9.36989Q7.04,11.712209999999999,7.04,15.03125Q7.04,18.3503,9.45787,20.6926Q11.86293,23.0225,15.25806,23.0225Q17.3273,23.0225,19.1399,22.0764Q20.8988,21.1584,22.0322,19.5569L22.1961,19.325200000000002ZM20.3014,18.670299999999997Q18.4437,21.1025,15.25806,21.1025Q12.640419999999999,21.1025,10.793800000000001,19.3136Q8.96,17.53709,8.96,15.03125Q8.96,12.52541,10.793800000000001,10.74892Q12.640419999999999,8.96,15.25806,8.96Q16.99013,8.96,18.4698,9.80759Q19.779899999999998,10.55807,20.5837,11.78821L20.3014,18.670299999999997Z" fill-rule="evenodd" fill="#F6F7FA" fill-opacity="1"/></g><g><g><path d="M17.19354820251465 18.3125C17.19354820251465 17.79473304703363 17.61328124954828 17.375 18.13104820251465 17.375L23 17.375C23 17.375 23 17.375 23 17.375L23 19.25C23 19.25 23 19.25 23 19.25L18.13104820251465 19.25C17.61328124954828 19.25 17.19354820251465 18.83026695296637 17.19354820251465 18.3125Z" fill="#F6F7FA" fill-opacity="1"/></g><g transform="matrix(0,-1,1,0,-1.9354841709136963,44.064515829086304)"><path d="M21.064515829086304 23.959999978542328C21.064515829086304 23.42980663055551 21.494322459641815 23 22.02451580762863 23L26.689515829086304 23C26.689515829086304 23 26.689515829086304 23 26.689515829086304 23L26.689515829086304 24.935483813285828C26.689515829086304 24.935483813285828 26.689515829086304 24.935483813285828 26.689515829086304 24.935483813285828L22.02451580762863 24.935483813285828C21.494322459641815 24.935483813285828 21.064515829086304 24.505677182730317 21.064515829086304 23.9754838347435Z" fill="#F6F7FA" fill-opacity="1"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
src/assets/site/invalid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
src/assets/site/show_and_hide.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

1
src/assets/site/star-active-icon.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16.505903244018555" height="16.001562118530273" viewBox="0 0 16.505903244018555 16.001562118530273"><g transform="matrix(1,0,0,-1,0,32.00312423706055)"><path d="M9.15,31.440662118530273Q8.86875,31.971862118530275,8.24375,32.00316211853027Q7.65,31.971862118530275,7.3375,31.440662118530273L5.3375,27.315662118530273L0.8375,26.628162118530273Q0.24375,26.534362118530275,0.05625,25.97187211853027Q-0.13125,25.37812211853027,0.30625,24.94062211853027L3.55625,21.72187211853027L2.775,17.159372118530275Q2.7125,16.565625118530274,3.18125,16.190625118530274Q3.68125,15.846875118530274,4.24375,16.128125118530274L8.24375,18.253122118530275L12.275,16.128125118530274Q12.8062,15.846875118530274,13.3062,16.190625118530274Q13.8062,16.565625118530274,13.7125,17.159372118530275L12.9625,21.72187211853027L16.2125,24.94062211853027Q16.6187,25.37812211853027,16.4625,25.97187211853027Q16.2437,26.534362118530275,15.65,26.628162118530273L11.15,27.315662118530273L9.15,31.440662118530273Z" fill="#1677FF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/site/star-icon.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16.505903244018555" height="16.001562118530273" viewBox="0 0 16.505903244018555 16.001562118530273"><g transform="matrix(1,0,0,-1,0,32.00312423706055)"><path d="M9.15,31.440662118530273Q8.86875,31.971862118530275,8.24375,32.00316211853027Q7.65,31.971862118530275,7.3375,31.440662118530273L5.3375,27.315662118530273L0.8375,26.628162118530273Q0.24375,26.534362118530275,0.05625,25.97187211853027Q-0.13125,25.37812211853027,0.30625,24.94062211853027L3.55625,21.72187211853027L2.775,17.159372118530275Q2.7125,16.565625118530274,3.18125,16.190625118530274Q3.68125,15.846875118530274,4.24375,16.128125118530274L8.24375,18.253122118530275L12.275,16.128125118530274Q12.8062,15.846875118530274,13.3062,16.190625118530274Q13.8062,16.565625118530274,13.7125,17.159372118530275L12.9625,21.72187211853027L16.2125,24.94062211853027Q16.6187,25.37812211853027,16.4625,25.97187211853027Q16.2437,26.534362118530275,15.65,26.628162118530273L11.15,27.315662118530273L9.15,31.440662118530273Z" fill="#9CA3AF" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

115
src/components/GuipSwitch.vue

@ -1,13 +1,14 @@
<template>
<el-form-item>
<el-form-item :prop="prop" :label="label" :rules="rules">
<div class="switchWrap">
<span :class="['switchDesc',{'fl':float =='left'},{'fr':float =='right'}]" v-if="activeText || inactiveText">
<span :class="['switchDesc', { 'fl': float == 'left' }, { 'fr': float == 'right' }]"
v-if="activeText || inactiveText">
{{ internalValue === activeValue ? activeText : inactiveText
}}</span>
<el-switch v-model="internalValue" :active-color="activeColor" :inactive-color="inactiveColor" v-bind="$attrs"
:disabled="disabled || loading" :active-value="activeValue"
:inactive-value="inactiveValue" @change="handleChange">
<el-switch v-model="internalValue" :active-color="activeColor" :inactive-color="inactiveColor"
v-bind="$attrs" :disabled="disabled" :active-value="activeValue" :inactive-value="inactiveValue"
@change="handleChange">
<!-- 自定义开启时的图标 -->
<template #active-icon>
</template>
@ -17,18 +18,20 @@
</el-switch>
</div>
</el-form-item>
</template>
<!-- 他这个描述文案不太符合当前使用暂且不用 -->
<!-- :active-text="activeText"
:inactive-text="inactiveText" -->
<!-- 设置active-value和inactive-value属性接受Boolean, String或Number类型的值 -->
<script>
export default {
name: 'CustomSwitch',
name: 'GuipSwitchå',
inheritAttrs: false,
props: {
// modelValue: { type: [Boolean, String, Number], default: undefined },
value: { type: [Boolean, String, Number], default: undefined },
prop: String,
label: String,
rules: Array,
labelWidth: String,
activeText: {
type: String,
default: '',
@ -37,17 +40,13 @@ export default {
type: String,
default: '',
},
modelValue: {
type: [Boolean,String,Number],
default: false,
},
activeValue: {
type: [Boolean,String,Number],
default: '',
type: [Boolean, String, Number],
default: true,
},
inactiveValue: {
type: [Boolean,String,Number],
default: '',
type: [Boolean, String, Number],
default: false,
},
activeColor: {
type: String,
@ -66,58 +65,64 @@ export default {
default: false,
},
},
emits: ['update:modelValue', 'change'],
data() {
return {
internalValue: this.modelValue,
loading: false, //
};
internalValue: this.value,
errorMsg: ''
}
},
computed: {
// internalValue: {
// get() {
// return this.modelValue !== undefined ? this.modelValue : this.value
// },
// set(val) {
// this.$emit('update:modelValue', val)
// this.$emit('input', val)
// }
// }
},
watch: {
value(newVal) {
this.internalValue = newVal;
},
modelValue(newVal) {
this.internalValue = newVal;
},
internalValue(newVal) {
this.internalValue = newVal;
this.$emit('input', newVal);
this.internalValue = newVal
},
// modelValue(newVal) {
// this.internalValue = newVal
// },
},
methods: {
// switch
async handleChange(value) {
this.loading = true;
try {
//
await new Promise((resolve) => setTimeout(resolve, 100));
this.internalValue = value;
this.$emit('update:modelValue', value);
this.$emit('change', value);
} catch (error) {
console.error('操作失败:', error);
} finally {
this.loading = false;
}
handleChange(val) {
// this.$emit('update:modelValue', val)
this.$emit('input', val)
this.$emit('change', val)
this.validateField()
},
},
components: {
},
};
validateField() {
if (this.prop && this.$parent.validateField) {
this.$parent.validateField(this.prop, (error) => {
this.errorMsg = error || ''
})
}
}
}
}
</script>
<style scoped>
.switchWrap {
/* align-items: center; */
}
.fl{
.fl {
float: left;
margin-right: 12px;
}
.fr{
.fr {
float: right;
margin-left: 12px;
}
.switchDesc {
font-size: 12px;
font-weight: normal;
@ -128,4 +133,10 @@ export default {
color: #626573;
display: inline-block;
}
.error-msg {
color: #f56c6c;
font-size: 12px;
margin-left: 10px;
}
</style>

48
src/components/SliderScond.vue

@ -77,11 +77,23 @@ export default {
GuipToolTip
},
watch: {
menuList(newVal) {
let subtitle = this.renderKeyNew.subtitle;
this.activeFloor = newVal[this.curIndex]?.list?.[0][subtitle];
this.componentsName = newVal[this.curIndex]?.list?.[0]?.componentsName || '';
store.commit('SET_CURRENTMENUITEM', newVal[this.curIndex]?.list?.[0]);
menuList:{
handler(newVal, oldVal) {
// oldVal
if (!oldVal || oldVal.length === 0) {
this.setDefaultActive(newVal);
return;
}
console.log(newVal,'newVal===');
// menuList
const currentItemExists = this.checkCurrentItem(newVal);
console.log(currentItemExists,'currentItemExists--');
//
if (!currentItemExists) {
this.setDefaultActive(newVal);
}
},
immediate: true
}
},
mounted() {
@ -105,6 +117,32 @@ export default {
}
},
methods: {
checkCurrentItem(newMenuList) {
const subtitle = this.renderKeyNew.subtitle;
//
if (!this.activeFloor) return false;
// menuList
for (const item of newMenuList) {
if (item.list) {
const found = item.list.some(subItem =>
subItem[subtitle] === this.activeFloor ||
subItem.componentsName === this.activeFloor
);
if (found) return true;
}
}
return false;
},
setDefaultActive(menuList) {
//
if (menuList && menuList.length > 0 && menuList[0].list && menuList[0].list.length > 0) {
const subtitle = this.renderKeyNew.subtitle;
this.activeFloor = menuList[0].list[0][subtitle] || menuList[0].list[0]?.componentsName || '';
this.componentsName = menuList[0].list[0]?.componentsName || '';
store.commit('SET_CURRENTMENUITEM', menuList[0].list[0]);
this.curIndex = 0;
}
},
handleChange(val) {
console.log("面板状态变化:", val);
},

18
src/components/bindGoods.vue

@ -1,13 +1,11 @@
<template>
<GuipDialog :dialogVisible="dialogVisible" :showFooterButton="list.length>0"
<GuipDialog :dialogVisible="showBind" :showFooterButton="list.length>0"
title="搜索商品" @confirm="handleConfirm" @cancel="handleCancel" @close="handleCancel">
<div class="domain-wrap">
<el-form class="el-row demo-ruleForm" ref="formRef">
<div class="flex flex-between">
<GuipInput width="420px" v-model="keywords">
<GuipToolTip slot="suffix">
<img src="@/assets/site/input_search.svg"/>
</GuipToolTip>
<img class="flex" slot="suffix" src="@/assets/site/input_search.svg"/>
</GuipInput>
<GuipButton type="primary" @click="handleSearch()">搜索</GuipButton>
</div>
@ -33,24 +31,21 @@
</template>
<script>
import GuipDialog from "@/components/GuipDialog.vue";
import GuipToolTip from "@/components/GuipToolTip.vue";
import GuipInput from "@/components/GuipInput.vue";
import GuipButton from "@/components/GuipButton.vue";
import GuipSelect from "@/components/GuipSelect.vue";
export default {
name: '',
props:['uid','type','pdd_pati','pdd_pagecode'],
props:['showBind','uid','type','pdd_pati','pdd_pagecode'],
components: {
GuipSelect,
GuipButton,
GuipInput,
GuipToolTip,
GuipDialog
},
data(){
return {
dialogVisible: true,
keywords: '',
loading: false,
list: [],
@ -61,7 +56,6 @@ export default {
},
methods:{
handleConfirm(){
this.dialogVisible = false;
const that = this
this.$http('POST', '/agentnew/ajax_bind_service_goods', {
uid: that.uid,
@ -74,7 +68,7 @@ export default {
}).then(response => {
if(response.status){
that.$message.success('绑定成功');
this.$emit('handleBind', this.bindData)
this.$emit('handleBind', true)
return true;
}
that.$message.error(response.info);
@ -83,8 +77,7 @@ export default {
})
},
handleCancel(){
this.dialogVisible = false;
this.$emit('handleBind', this.bindData)
this.$emit('handleBind', false)
},
handleSearch(){
const that = this
@ -158,7 +151,6 @@ export default {
.el-empty{
padding: 20px 0;
}
.goods-list{
max-height: 400px;
overflow-y: scroll;

15
src/components/paymentMethod.vue

@ -3,10 +3,11 @@
<draggable v-model="list" @start="drag=true" @end="onEnd" :move="checkMove" handle=".drag-handle" >
<div class="payment-item" v-for="(item, index) in list" :key="item.name">
<dl :class="index === list.length - 1 ? '' : 'drag-handle'">
<img v-if="item.pay_type == '1'" src="@/assets/register/card_pay.png" alt="">
<img v-if="item.pay_type == '2'" src="@/assets/register/weixin_pay.png" alt="">
<img v-if="item.pay_type == '3'" src="@/assets/register/zhifubao_pay.png" alt="">
<img v-if="item.pay_type == '4'" src="@/assets/register/taobao_pay.png" alt="">
<img v-if="item.pay_type === 0" src="@/assets/register/taobao.svg" alt="">
<img v-if="item.pay_type === 1" src="@/assets/register/card_pay.png" alt="">
<img v-if="item.pay_type === 2" src="@/assets/register/weixin.svg" alt="">
<img v-if="item.pay_type === 3" src="@/assets/register/zhifubao.svg" alt="">
<img v-if="item.pay_type === 11" src="@/assets/register/pinduoduo.svg" alt="">
<dd>
<p class="pay-name">{{ item.name }}</p>
<p v-if="item.account" class="pay-account">{{ item.account }}</p>
@ -32,12 +33,6 @@ export default {
},
data(){
return {
payImg:{
'1':'@/assets/register/weixin_pay.png',
'2':'@/assets/register/zhifubao_pay.png',
'3':'@/assets/register/taobao_pay.png',
'4':'@/assets/register/jingdong_pay.png',
},
list:[],
drag: false,
}

16
src/components/site/addSiteStep/step2.vue

@ -11,7 +11,7 @@
<div class="flex-left">
<div class="shopadd-wrap" v-if="!taobaoList.length">
<p class="shopadd-title">店铺授权</p>
<div class="flex flex-between shopadd-area">
<div class="flex-between shopadd-area">
<div>
<p>请确保使用要添加的淘宝主账号登录并授权</p>
<p>如未购买快乐帮手服务或已过期会跳转到购买服务页面</p>
@ -34,7 +34,7 @@
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="flex-between noraml-jump">
<div class="left">
<b>添加新店铺</b>
<p class="one">请确保使用要添加的淘宝主账号登录并授权</p>
@ -81,7 +81,7 @@
<!-- 自定义下拉选项 -->
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="flex-between noraml-jump">
<div class="left">
<b>绑定新微信收款</b>
<p class="one">需要使用您公司的微信支付</p>
@ -125,7 +125,7 @@
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="flex-between noraml-jump">
<div class="left">
<b>绑定新支付宝收款</b>
<p class="one">需要使用您公司的支付宝支付</p>
@ -159,7 +159,7 @@
<div class="flex-left">
<div class="shopadd-wrap" v-if="pddList.length">
<p class="shopadd-title">店铺授权</p>
<div class="flex flex-between shopadd-area">
<div class="flex-between shopadd-area">
<div>
<p>请确保使用要添加的拼多多主账号登录并授权</p>
<p>如未购买快乐帮手服务或已过期会跳转到购买服务页面</p>
@ -182,7 +182,7 @@
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="flex-between noraml-jump">
<div class="left">
<b>绑定新拼多多店铺</b>
<p class="one">如未购买快乐帮手服务或已过期会跳转到购买服务页面</p>
@ -218,7 +218,7 @@
<div class="flex-left">
<div class="shopadd-wrap" v-if="!jdList.length">
<p class="shopadd-title">店铺授权</p>
<div class="flex flex-between shopadd-area">
<div class="flex-between shopadd-area">
<div>
<p>请确保使用要添加的京东主账号登录并授权</p>
<p>如未购买快乐论文检测服务服务或已过期会跳转到购买服务页面</p>
@ -241,7 +241,7 @@
</template>
<template #normal>
<div class="flex flex-between noraml-jump">
<div class="flex-between noraml-jump">
<div class="left">
<b>绑定新京东店铺</b>
<p class="one">如未购买快乐论文检测服务服务或已过期会跳转到购买服务页面</p>

362
src/components/site/addSiteStep/step3.vue

@ -12,7 +12,7 @@
<div>
<div class="flex-common table-wrap">
<el-form>
<GuipTable :border="true" :tableData="tableData" :loading="tableLoading">
<GuipTable :border="true" :tableData="serviceList" :loading="tableLoading">
<el-table-column prop="name" fixed="left" label="检测服务" width="200">
<template slot-scope="scope">
<div class="flex nowrap ">
@ -22,42 +22,32 @@
</div>
</template>
</el-table-column>
<el-table-column prop="stock" label="今日供货价" min-width="138">
<template slot-scope="scope">
<div class="flex cell_render">
<span>¥{{ scope.row.stock }}/</span>
</div>
</template>
</el-table-column>
<el-table-column prop="price" label="售价" width="300">
<el-table-column prop="supply_price_desc" label="今日供货价"></el-table-column>
<el-table-column prop="price_desc" label="售价">
<template #default="{ row,$index }">
<el-popover v-model="row.pricePopoverVisible" :ref="`pricePopover-${row.id}`"
<el-popover v-model="row.pricePopoverVisible" :ref="`pricePopover-${row.type}`"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<div style="text-align: center">
<GuipInput ref="GuipInput" v-if="!row.word" width="252px" v-model="row.edit_price" label="售价"
placeholder="请输入售价" unit="元">
</GuipInput>
<div v-else class="flex">
<GuipInput ref="GuipInput" width="133px" v-model="row.edit_price" label="售价" placeholder="请输入售价"
unit="元">
</GuipInput>
<span class="shortspan">/</span>
<GuipInput ref="GuipInput" width="133px" v-model="row.edit_word" placeholder="请输入字符" unit="字符">
</GuipInput>
<div class="flex">
<GuipInput ref="GuipInput" width="133px" v-model="row.price" label="售价" placeholder="请输入售价" :unit="row.price_unit"></GuipInput>
<template v-if="row.price_unit_num>1">
<span class="shortspan">/</span>
<GuipInput ref="GuipInput" width="133px" v-model="row.price_unit_num" unit="字符">
</GuipInput>
</template>
</div>
<div class="flex" style="text-align: right; margin-top: 32px;justify-content: flex-end;">
<GuipButton size="medium" @click="cancelEdit(row, 'price')">取消</GuipButton>
<GuipButton type="primary" @click="savePrice(row, 'price')" size="medium">确定</GuipButton>
<GuipButton type="primary" @click="saveEdit(row, 'price')" size="medium">确定</GuipButton>
</div>
</div>
<template #reference>
<div class="flex cell_render" @click="handlePriceClick(row,$index,'price')">
<span v-if="row.word" :key="random()">¥{{ row.price }}/{{ row.word }}</span>
<span v-else :key="random()">¥{{ row.price }}/</span>
<span>测试用一下</span>
<span>随便写的</span>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
<div class="flex cell_render" @click="handleEditClick(row,$index,'price')">
<span :key="random()">{{ row.price_desc }}</span>
<svg-icon :size="16" :path="require('@/assets/site/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
</template>
@ -65,71 +55,58 @@
</template>
</el-table-column>
<el-table-column prop="num" label="排序" min-width="95">
<el-table-column prop="sort_id" label="排序">
<template #default="{ row,$index }">
<!-- <el-tooltip :manual="true" v-model="row.numPopoverVisible" placement="top" effect="light">
<template #content>
<div style="text-align: center">
<GuipInput ref="GuipInput" width="252px" v-model="row.edit_num" label="排序" placeholder="请输入数字">
</GuipInput>
<p
style="width: 252px;margin-left: 40px;text-align: right;color: #8A9099;letter-spacing: 0.08em;">
输入0的数越小排序越前重复则新者优先0则默认排序</p>
<div class="flex" style="text-align: right; margin-top: 32px;justify-content: flex-end;">
<GuipButton size="medium" @click="cancelEdit(row, 'num')">取消</GuipButton>
<GuipButton type="primary" @click="savePrice(row, 'num')" size="medium">确定</GuipButton>
</div>
</div>
</template>
<div class="flex cell_render" @click="row.numPopoverVisible = true">
<span>{{ row.num }}</span>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
</el-tooltip> -->
<el-popover v-model="row.numPopoverVisible" :ref="`popover-${row.id}`"
<el-popover v-model="row.sortPopoverVisible" :ref="`popover-${row.type}`"
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<!-- <el-popover v-model="row.numPopoverVisible" placement="top" class="single-popover" trigger="manual" :append-to-body="false" :ref="`popover-${row.id}`"> -->
<div style="text-align: center" :visible-arrow="true">
<GuipInput ref="GuipInput" width="252px" v-model="row.edit_num" label="排序" placeholder="请输入数字">
</GuipInput>
<p
style="width: 252px;margin-left: 40px;text-align: right;color: #8A9099;letter-spacing: 0.08em;">
输入0的数越小排序越前重复则新者优先0则默认排序</p>
<div style="text-align: center">
<GuipInput ref="GuipInput" width="252px" v-model="row.edit_sort_id" label="排序" placeholder="请输入数字"></GuipInput>
<p style="width: 252px;margin-left: 40px;text-align: right;color: #8A9099;letter-spacing: 0.08em;">输入0的数越小排序越前重复则新者优先0则默认排序</p>
<div class="flex" style="text-align: right; margin-top: 32px;justify-content: flex-end;">
<GuipButton size="medium" @click="cancelEdit(row, 'num')">取消</GuipButton>
<GuipButton type="primary" @click="savePrice(row, 'num')" size="medium">确定</GuipButton>
<GuipButton size="medium" @click="cancelEdit(row, 'sort')">取消</GuipButton>
<GuipButton type="primary" @click="saveEdit(row, 'sort')" size="medium">确定</GuipButton>
</div>
</div>
<span slot="reference" @click="handlePriceClick(row,$index,'num')">
<div class="flex cell_render">
<GuipToolTip :content="row.num">
<span class="nowrap">{{ row.num }}</span>
</GuipToolTip>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
</span>
<template #reference>
<div class="flex cell_render" @click="handleEditClick(row,$index,'sort')">
<span :key="random()">{{ row.sort_id }}</span>
<svg-icon :size="16" :path="require('@/assets/site/tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" />
</div>
</template>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="stock" label="收款方式" min-width="258">
<el-table-column prop="payment_method_desc" label="收款方式">
<template slot-scope="scope">
<div class="flex cell_render">
<span class="default-pay-method">{{scope.row.payment_method_desc}}</span>
<svg-icon :size="16" :path="require('@/assets/site/tableEdit.svg')" :color="'#8A9099'" :hoverColor="'#006AFF'" />
</div>
</template>
<template slot-scope="scope">
<div class="flex cell_render">
<span :class="(scope.row.payment == '0' ? 'normal_payment' : 'self_payment')">
{{ scope.row.payment == '0' ? '默认站点支付' : '自定义支付' }}</span>
<span :class="(scope.row.payment_method_desc == '默认站点支付' ? 'normal_payment' : 'self_payment')">
{{ scope.row.payment_method_desc == '默认站点支付' ? '默认站点支付' : '自定义支付' }}
</span>
<svg-icon :size="16" :path="require('@/assets/register/tableEdit.svg')"
:color="'#8A9099'" :hoverColor="'#006AFF'" />
@click="popPayMentModal(scope.row)" :color="'#8A9099'" :hoverColor="'#006AFF'" />
</div>
</template>
</el-table-column>
<el-table-column prop="stock" fixed="right" label="上首页" min-width="160">
<el-table-column prop="sort_id" label="上首页">
<template slot-scope="scope">
<GuipSwitch :modelValue="scope.row.homeFlag">
</GuipSwitch>
<div class="flex cell_render">
<GuipSwitch :modelValue="scope.row.is_index_display" active-value="1" inactive-value="0" @change="onSwitchChange(scope.row)"></GuipSwitch>
</div>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" min-width="150px">
<div class="flex">
<el-button type="text">编辑</el-button>
@ -140,8 +117,14 @@
<el-pagination background @size-change='handleSizeChange' @current-change='handleCurrentChange'
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="tableData.length">
:total="serviceList.length">
</el-pagination>
<GuipDialog :dialogVisible="dialogVisible" :title="dialogTitle" :show-close-button="false" @confirm="handleConfirm"
@cancel="handleCancel" type="center" >
<PromptText text='按住左侧图标,上下拖动可进行排序,平台卡券只能放到最后。' :type="1" class="mb24 mt12"/>
<PaymentMethod :paymentList="payList" @confirm="confirmPayment"/>
</GuipDialog>
</el-form>
</div>
@ -156,13 +139,15 @@
</template>
<script>
import GuipButton from "@/components/GuipButton.vue";
import GuipInput from "@/components/GuipInput.vue";
import GuipToolTip from "@/components/GuipToolTip.vue";
import SvgIcon from "@/components/SvgIcon.vue";
import GuipSwitch from "@/components/GuipSwitch.vue";
import GuipTable from "@/components/GuipTable.vue";
import {getServicePriceDesc} from "@/utils/common";
import PaymentMethod from "@/components/paymentMethod.vue";
import GuipDialog from "@/components/GuipDialog.vue";
import PromptText from "@/components/PromptText.vue";
export default {
name: 'domainSet',
@ -173,20 +158,30 @@ export default {
}
},
components: {
GuipTable, GuipSwitch, SvgIcon, GuipToolTip, GuipInput,
PromptText, GuipDialog, PaymentMethod,
GuipTable, GuipSwitch, SvgIcon, GuipInput,
GuipButton
},
data(){
return {
token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NTI2NDY1NDUsIm5iZiI6MTc1MjY0NjU0NSwiZXhwIjoxNzU1MjM4NTQ1LCJ1c2VyIjoic3VidXNlciIsImxvZ2luX3R5cGUiOjAsImFpZCI6IjEifQ.G-Is-x9qPMiV_urOlDPQVRjfAIozySxL5EK2k82d46k',
tableData:[],
serviceList:[],
tableLoading:false,
currentPage: 1, //
pageSize: 2, //
total: 0, //
//
payList: [],
//
popoverFlag:false,
//
dialogVisible: false, //
dialogTitle: "", //
editRow:{},
// url
serviceAddUrl: '/agent/siteAddService',
serviceAddUrl: '/agent/siteAddFinally',
}
},
mounted() {
@ -195,8 +190,13 @@ export default {
this.$emit('handelStep', 1)
return false;
}
this.getSiteServiceList()
},
methods:{
random() {
return Math.random();
},
jumpStep(){
this.$emit('handelStep', 4)
},
@ -205,7 +205,26 @@ export default {
this.$emit('handelStep', 4)
},
//
getSiteServiceList() {
this.tableLoading = true
const that = this
that.serviceList = []
that.$http('POST', '/agentnew/ajax_get_service_list', {
uid: that.siteInfo.uid,
},{
headers:{
'Auth': that.token
}
}).then(response => {
that.tableLoading = false
that.$nextTick(() => {
that.serviceList = response.data.service_list
})
}).catch(error => {
console.error(error, 'error')
})
},
handleSizeChange(val) {
this.pageSize = val
@ -217,54 +236,173 @@ export default {
this.$router.push(this.serviceAddUrl + '?uid=' + this.siteInfo.uid + '&prodid=' + prodid)
},
//
handleEditClick(row, index, type) {
//
this.popoverFlag = true;
this.serviceList.forEach((item, i) => {
if (i !== index) {
item[type + 'PopoverVisible'] = false;
}
});
//
row[type + 'PopoverVisible'] = true;
},
popshow() {
var ariaEls = document.querySelectorAll('.el-popover')
ariaEls.forEach((item) => {
item.removeAttribute('aria-hidden')
})
ariaEls = document.querySelectorAll('.el-radio__original')
ariaEls.forEach((item) => {
item.removeAttribute('aria-hidden')
})
},
//
saveEdit(row, type) {
row[type + 'PopoverVisible'] = false; //
if(type == 'price') this.savePrice(row)
if(type == 'sort') this.saveSort(row)
},
//
cancelEdit(row, type) {
row[type + 'PopoverVisible'] = false;
this.popoverFlag = false
// row[type + '_popover'] = false; //
// this.$Message.info('');
},
async savePrice(row){
if (row.price === '') {
this.$message.warning('价格不能为空');
return;
}
let obj = {}
obj.uid = this.siteInfo.uid
obj.type = row.type
obj.unit_num = row.price_unit_num
if(row.price_unit == '元'){
obj.unit_price = row.price
}else{
obj.unit_piece = row.price
}
handleEvent(data){
this.newDomain = data
const res = await this.saveRequest('/agentnew/ajax_set_service_price', obj)
if(res) row.price_desc = getServicePriceDesc(row.price, row.price_unit, row.price_unit_num);
},
saveConfirm() {
async onSwitchChange(row){
console.log(row)
let obj = {}
obj.uid = this.info.uid
obj.type = this.info.type
if(this.domainFrom === '1'){
if(!this.newDomain.prefix || !this.newDomain.domain) return false
obj.domain = this.newDomain.prefix + this.newDomain.domain
}else{
obj.domain = ''
obj.uid = this.siteInfo.uid
obj.type = row.type
obj.is_index_display = row.is_index_display
const res = await this.saveRequest('/agentnew/ajax_update_service_show', obj)
console.log(res)
if(!res) row.is_index_display = row.is_index_display === "1" ? "0" : "1"
},
async saveSort(row){
let obj = {}
obj.uid = this.siteInfo.uid
obj.type = row.type
obj.sort_id = row.sort_id
const res = await this.saveRequest('/agentnew/ajax_update_service_show', obj)
if(res) {
row.sort_id = row.edit_sort_id;
this.sortServiceList()
}
},
sortServiceList() {
const sortable = this.serviceList
.map((row, i) => ({ row, i }))
.filter(item => item.row.sort_id > 0)
.sort((a, b) => a.row.sort_id - b.row.sort_id);
let i = 0;
this.serviceList = this.serviceList.map(row => {
if (row.sort_id > 0) {
return sortable[i++].row;
}
return row;
});
},
async saveRequest(url, obj){
const that = this
this.$http('POST', '/agentnew/ajax_update_service_domain', obj,{
return await this.$http('POST', url, obj,{
headers:{
'Auth': this.token
}
}).then(response => {
if(response.status){
that.$message.success('保存成功');
//
const protocol = new URL(that.info.domain).protocol;
if(this.domainFrom === '1'){
that.info.domain = protocol + "//" +obj.domain;
that.info.ser_domain = protocol + "//" +obj.domain;
}else{
that.info.domain = that.info.site_domain;
that.info.ser_domain = '';
}
that.$emit('saveEvent', that.info)
return true;
}
that.$message.error(response.info);
return false;
}).catch(error => {
console.error(error, 'error')
})
},
popPayMentModal(row){
this.dialogVisible = true;
this.dialogTitle = row.type_desc + '-收款方式'
this.editRow = row
this.getPayList(row.type)
},
//
getPayList(type) {
const that = this
that.payList = []
this.$http('POST', '/agentnew/ajax_get_service_pay_list', {
uid: that.siteInfo.uid,
type: type,
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
that.payList = response.data.paylist
})
}).catch(error => {
console.error(error, 'error')
})
},
confirmPayment(payList){
this.payList = payList
},
//
async handleConfirm() {
this.dialogVisible = false;
let obj = {}
obj.uid = this.siteInfo.uid
obj.type = this.editRow.type
obj.info = ""
let hasClose = false
this.payList.forEach((row) => {
if(row.status == 1) {
let value = row.pay_type
if(row.id) value += ',' + row.id
obj.info = obj.info + ';' + value;
}else{
hasClose = true
}
});
obj.info = obj.info.substr(1, obj.info.length-1);
await this.saveRequest('/agentnew/ajax_payment_switch', obj, this.editRow)
const res = await this.saveRequest('/agentnew/ajax_payment_switch', obj, this.editRow)
if(res && hasClose) {
this.editRow.payment_method_desc = '自定义支付';
}
},
//
handleCancel() {
this.dialogVisible = false;
},
}
}
</script>
@ -292,4 +430,12 @@ export default {
}
}
}
.custom-popover {
position: fixed !important;
// max-height: 290px;
// overflow-y: auto;
margin-top: 0 !important;
margin-left: 0 !important;
transform: none !important;
}
</style>

2
src/components/site/serviceSetting/priceSet.vue

@ -10,7 +10,7 @@
<div class="flex-wrap">
<div class="flex-left">
<div class="set-item">
<div class="set-title flex flex-between">
<div class="set-title flex-between">
<p>售价管理</p>
<p>供货价格3.5/</p>
</div>

2
src/router/index.js

@ -132,7 +132,7 @@ const routes = [{
path: '/agent/siteAddFinally',
name: '添加站点-添加服务',
isFirst: true,
component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteAddFinally.vue'),
component: () => import( /* webpackChunkName: "siteList" */ '../views/agent/siteServiceAdd.vue'),
meta: {
title: '添加服务',
breadcrumbParent: '添加站点',

4
src/store/index.js

@ -567,7 +567,7 @@ export default new Vuex.Store({
},
mutations: {
SET_CURRENTMENUITEM(state,data){
state.currentMenuItem = JSON.parse(JSON.stringify(data));
state.currentMenuItem = data && JSON.parse(JSON.stringify(data));
},
SET_COMPONENTS_NAME(state,name){
state.componentsName = name;
@ -576,7 +576,7 @@ export default new Vuex.Store({
state.slidermenu = state[type]
},
SET_SECOND_MENU(state,data){
state.secondMenu = JSON.parse(JSON.stringify(data))
state.secondMenu = data && JSON.parse(JSON.stringify(data))
},
SET_CUSTOMIZE(state,show) {
state.customize = show

179
src/views/agent/checkOrderList.vue

@ -2,19 +2,20 @@
<div class="main-content12">
<!-- page header -->
<div class="pageheader flex-between">
<span class="pagetitle">{{ pageTitle }}</span>
<span class="pagetitle">{{ pageTitle }}</span>
<GuipButton size="table" type="ignore" @click="showPddSetting">拼多多发货</GuipButton>
<GuipDialog :dialogVisible="dialogVisiblePddSetting" title="" :confirmText="pddSettingConfirmText" cancelText="取消"
:show-close-button="false" :show-cancel-button="true" @confirm="pddSetting" @cancel="closePddSetting"
@close="closePddSetting" @dialogVisibleChange="dialogVisibleChange">
<GuipDialog :dialogVisible="dialogVisiblePddSetting" title="" :confirmText="pddSettingConfirmText"
cancelText="取消" :show-close-button="false" :show-cancel-button="true" @confirm="pddSetting"
@cancel="closePddSetting" @close="closePddSetting" @dialogVisibleChange="dialogVisibleChange">
<!-- 自定义内容 -->
<el-form>
<el-form>
<el-tabs v-model="pddSettingActiveName" @tab-click="handleClick">
<el-tab-pane label="拼多多手工发货" name="1">
<PromptText text='导出待发货订单excel,到拼多多导入该excel进行发货' :type="1" />
<GuipSelect class="mt-16" label="选择站点" v-model="pddExportUid" @change="selectPddExportSite()" :options="searchSiteList" valueKey="uid" labelKey="name"
:extraItem="{label:'请选择站点',value:'0'}" placeholder="" clearable width="300px" />
<GuipSelect class="mt-16" label="选择站点" v-model="pddExportUid"
@change="selectPddExportSite()" :options="searchSiteList" valueKey="uid" labelKey="name"
:extraItem="{ label: '请选择站点', value: '0' }" placeholder="" clearable width="300px" />
</el-tab-pane>
<el-tab-pane label="拼多多自动发货" name="2">
@ -25,10 +26,13 @@
</div>
<div class="mt-16">
<div>
<el-checkbox checked disabled><span class="fontblue">允许未发货的有效订单提交检测不可取消</span></el-checkbox>
<el-checkbox checked disabled><span
class="fontblue">允许未发货的有效订单提交检测不可取消</span></el-checkbox>
</div>
<div class="mt-16">
<el-checkbox v-model="selectAllowPddDeliveredDelayedSubmit">允许已发货<el-input v-model="pddDeliveredDelayedSubmitHour" style="width:50px;height:30px"></el-input>小时订单提交论文检测</el-checkbox>
<el-checkbox v-model="selectAllowPddDeliveredDelayedSubmit">允许已发货<el-input
v-model="pddDeliveredDelayedSubmitHour"
style="width:50px;height:30px"></el-input></el-checkbox>
</div>
</div>
</div>
@ -54,14 +58,16 @@
start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
</el-date-picker>
<GuipSelect class="mr-32" label="服务类型" v-model="searchType" @change="changeSearchType()" :options="searchTypeList"
:extraItem="{label:'全部',value:'0'}" placeholder="" clearable />
<GuipSelect class="mr-32" label="服务类型" v-model="searchType" @change="changeSearchType()"
:options="searchTypeList" :extraItem="{ label: '全部', value: '0' }" placeholder="" clearable />
<GuipSelect class="mr-32" label="站点" v-model="searchUid" @change="changeSearchSite()" :options="searchSiteList" valueKey="uid" labelKey="name"
:extraItem="{label:'全部',value:'0'}" placeholder="" clearable />
<GuipSelect class="mr-32" label="站点" v-model="searchUid" @change="changeSearchSite()"
:options="searchSiteList" valueKey="uid" labelKey="name" :extraItem="{ label: '全部', value: '0' }"
placeholder="" clearable />
<GuipSelect class="mr-32" width="100px" label="报告状态" v-model="searchStatus" @change="changeSearchStatus()"
:options="searchStatusList" :extraItem="{ label: '全部', value: 'all' }" placeholder="不限" clearable />
<GuipSelect class="mr-32" width="100px" label="报告状态" v-model="searchStatus"
@change="changeSearchStatus()" :options="searchStatusList"
:extraItem="{ label: '全部', value: 'all' }" placeholder="不限" clearable />
</div>
</el-form>
</div>
@ -73,10 +79,12 @@
<div class="flex" style="justify-content: space-between;">
<div class="flex">
<h3 class="checktitle mr-24">{{ pageTitle }}列表</h3>
<GuipSelect class="mr-32" label="报告格式" v-model="reportNameFormat" :options="donwReportNameFormat"
@change="changeReportNameFormat()" clearable v-if="pageTab=='check'" />
<GuipSelect class="mr-32" label="报告格式" v-model="reportNameFormat"
:options="donwReportNameFormat" @change="changeReportNameFormat()" clearable
v-if="pageTab == 'check'" />
</div>
<GuipInput label="订单号" v-model="searchTid" @blur="changeSearchTid()" placeholder="请输入订单号" ref="GuipInput" />
<GuipInput label="订单号" v-model="searchTid" @blur="changeSearchTid()" placeholder="请输入订单号"
ref="GuipInput" />
</div>
@ -133,7 +141,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="author" label="作者" v-if="pageTab=='check'">
<el-table-column prop="author" label="作者" v-if="pageTab == 'check'">
<template slot-scope="scope">
<div class="flex">
<GuipToolTip :content="'作者:' + scope.row.author + ' 标题:' + scope.row.title">
@ -142,7 +150,7 @@
</div>
</template>
</el-table-column>
<el-table-column prop="title" label="标题" v-else-if="pageTab=='ai'" min-width="200px">
<el-table-column prop="title" label="标题" v-else-if="pageTab == 'ai'" min-width="200px">
<template slot-scope="scope">
<div class="flex">
<GuipToolTip :content="scope.row.title">
@ -173,7 +181,7 @@
</template>
</el-table-column>
<el-table-column prop="wordnum" label="字数"></el-table-column>
<el-table-column v-if="pageTab!='ai'" prop="similarity" label="相似度">
<el-table-column v-if="pageTab != 'ai'" prop="similarity" label="相似度">
<template slot-scope="scope">
<div class="flex">
<p v-if="scope.row.similarity > 0">{{ scope.row.similarity }}%</p>
@ -228,7 +236,7 @@
<Page :current-page="orderListCurrentPage" :has-next-page="isHasNextPage"
:total-records="orderListTotalRecords" :page-size="orderListPageSize" :is-loading="tableLoading"
@page-change="handlePageChange" />
</el-form>
</div>
<GuipDialog :dialogVisible="dialogVisibleDelReport" title="删除报告" confirmText="删除" cancelText="取消"
@ -237,6 +245,9 @@
<!-- 自定义内容 -->
<p class="mx-24 mt12 flex">是否删除 ID:{{ delReportId }} 报告删除后无法恢复</p>
</GuipDialog>
<audio id="notice-sound" ref="audioPlayer" :src="audioSrc" hidden v-if="!isIE"></audio>
<!-- IE浏览器使用的embed元素 -->
<embed v-if="isIE" name="embedPlay" :src="audioSrc" autostart="true" hidden="true" loop="false" />
</div>
</div>
</template>
@ -306,15 +317,80 @@ export default {
donwReportNameFormat: [],
reportNameFormat: 0,
intervalId: null,
isMuted: true,
audioSrc: require('@/assets/msg.wav'), //
isIE: false // IE
}
},
mounted() {
this.pageTab = this.$route.query.list
this.getOrderList()
this.getConfig()
this.startTimer();
this.checkBrowser();
if (!this.isIE) {
this.$refs.audioPlayer.load(); //
}
},
beforeUpdate() {
},
beforeDestroy() {
this.stopTimer();
},
methods: {
getFilterParams(){
unmute() {
this.isMuted = false;
if (this.$refs.audioPlayer) {
this.$refs.audioPlayer.muted = false;
}
},
checkBrowser() {
const userAgent = window.navigator.userAgent.toLowerCase();
this.isIE = userAgent.indexOf("ie") >= 0 || userAgent.indexOf("trident") >= 0;
},
//
playSound() {
this.$nextTick(() => {
if (this.isIE) {
// IE使embed
console.log('ienotice');
} else {
// 使audio
try {
const audio = this.$refs.audioPlayer;
this.unmute()
if (audio) {
audio.play().then(() => {
console.log('notice');
}).catch(e => {
console.error('音频播放失败:', e);
});
}
} catch (e) {
console.error('播放出错:', e);
}
}
});
},
startTimer() {
this.intervalId = setInterval(() => {
this.getOrderList()
// // -- is okk
// this.playSound()
// 5
console.log('定时更新订单');
}, 60000);
},
stopTimer() {
if (this.intervalId) {
clearInterval(this.intervalId);
}
},
getFilterParams() {
var stime = '';
var etime = '';
if (this.searchDate && this.searchDate.length > 0) {
@ -329,9 +405,9 @@ export default {
if (this.searchUid) params.uid = this.searchUid;
this.getOrderList(params)
},
resetPageParams(){
resetPageParams() {
this.orderListTotalRecords = 0
this.isHasNextPage = true
this.orderListCurrentPage = 1
@ -340,7 +416,7 @@ export default {
this.orderListPrevMaxId = 0
this.orderListEndPage = 0
},
resetSearchParams(){
resetSearchParams() {
this.searchDate = ''
this.searchStatus = 'all'
this.searchType = '0'
@ -353,7 +429,7 @@ export default {
},
getConfig() {
this.$http('POST', '/agentnew/get_agent_config', {
}, {
headers: {
'Auth': this.token
@ -392,6 +468,10 @@ export default {
}).then(response => {
this.tableLoading = false
this.$nextTick(() => {
if (this.intervalId && response.data.maxid && this.orderListPrevMaxId && response.data.maxid > this.orderListPrevMaxId) {
console.log('有新订单了');
this.playSound();
}
this.orderList = response.data.list
this.searchStatusList = response.data.search_check_status
this.orderListTotalRecords = response.data.total_records
@ -437,13 +517,13 @@ export default {
if (this.searchType) params.type = this.searchType;
if (this.searchUid) params.uid = this.searchUid;
this.$http('GET', '/agentnew/export_order', params,{
returnFullResponse: true ,
this.$http('GET', '/agentnew/export_order', params, {
returnFullResponse: true,
headers: {
'Auth': this.token,
},
responseType: 'blob'
}).then(response => {
}).then(response => {
const {
headers, // headers
data, //
@ -453,24 +533,24 @@ export default {
const blob = new Blob([data], { type: 'application/force-download' });
const downloadUrl = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = downloadUrl;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(downloadUrl);
}).catch(error => {
console.error(error, 'error')
})
},
decodeRFC5987Filename(header) {
decodeRFC5987Filename(header) {
// RFC 5987 filename*=utf8''xxx
const match = header.match(/filename\*=(?:utf8|UTF-8)''([^;]+)/i);
console.log(match,'match');
console.log(match, 'match');
if (match) {
return decodeURIComponent(match[1]);
}
@ -488,8 +568,8 @@ export default {
console.log(this.searchUid)
},
changeSearchTid() {
console.log(this.searchTid,'this.searchTid')
this.getOrderList({orderid:this.searchTid})
console.log(this.searchTid, 'this.searchTid')
this.getOrderList({ orderid: this.searchTid })
},
changeSearchType() {
console.log(this.searchType)
@ -568,14 +648,14 @@ export default {
pddSetting() {
if (this.pddSettingActiveName == 1) {
this.$http('GET', '/agentnew/export_pdd_tids', {
uid: this.pddExportUid,
},{
returnFullResponse: true ,
uid: this.pddExportUid,
}, {
returnFullResponse: true,
headers: {
'Auth': this.token,
},
responseType: 'blob'
}).then(response => {
}).then(response => {
const {
headers, // headers
data, //
@ -585,14 +665,14 @@ export default {
const blob = new Blob([data], { type: 'application/force-download' });
const downloadUrl = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = downloadUrl;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(downloadUrl);
}).catch(error => {
@ -600,7 +680,7 @@ export default {
})
} else if (this.pddSettingActiveName == 2) {
this.$http('POST', '/agentnew/ajax_set_pdd_delivered_delayed_submit_hour', {
hour: this.selectAllowPddDeliveredDelayedSubmit===true ? this.pddDeliveredDelayedSubmitHour : 0,
hour: this.selectAllowPddDeliveredDelayedSubmit === true ? this.pddDeliveredDelayedSubmitHour : 0,
}, {
headers: {
'Auth': this.token
@ -618,7 +698,7 @@ export default {
console.error(error, 'error')
})
}
},
handleClick() {
console.log(this.pddSettingActiveName);
@ -651,14 +731,14 @@ export default {
this.getOrderList(params)
},
},
computed: {
},
watch: {
'$route.query'(newVal) {
console.log('参数变化:', newVal);
//
this.pageTab = newVal.list
@ -671,7 +751,7 @@ export default {
this.resetSearchParams()
this.resetPageParams()
}
},
}
</script>
@ -722,6 +802,7 @@ export default {
.mt-16 {
margin-top: 16px;
}
.mb-10 {
margin-bottom: 10px;
}

281
src/views/agent/home.vue

@ -19,16 +19,37 @@
</div>
<div class="salesStatistics common-area">
<h2 class="flex-between">
<b>销售统计 <span>202410-28数据</span></b>
<b>销售统计 <span>{{ saleStats.date }}数据</span></b>
<span class="hoverCommon" @click="lookMoreSystem">查看全部</span>
</h2>
<div class="salesStatistics-main flex">
<div class="sales-item flex" v-for="(item, index) in salesList" :key="item.name">
<img :src="require(`@/assets/home/sales${index + 1}.png`)" alt="">
<div class="sales-item flex">
<img :src="require(`@/assets/home/sales1.png`)" alt="">
<div class="column">
<p class="flex"><span class="number">{{ item.num }}</span> <span v-if="index < 2" class="unit"></span></p>
<span class="label">{{ item.label }}</span>
<p class="flex"><span class="number">{{ saleStats.income }}</span> <span class="unit"></span></p>
<span class="label">销售金额</span>
</div>
</div>
<div class="sales-item flex">
<img :src="require(`@/assets/home/sales2.png`)" alt="">
<div class="column">
<p class="flex"><span class="number">{{ saleStats.cost }}</span> <span class="unit"></span></p>
<span class="label">成本支出</span>
</div>
</div>
<div class="sales-item flex">
<img :src="require(`@/assets/home/sales3.png`)" alt="">
<div class="column">
<p class="flex"><span class="number">{{ saleStats.check_num }}</span></p>
<span class="label">查重订单量</span>
</div>
</div>
<div class="sales-item flex">
<img :src="require(`@/assets/home/sales4.png`)" alt="">
<div class="column">
<p class="flex"><span class="number">{{ saleStats.ai_num }}</span></p>
<span class="label">AIGC订单量</span>
</div>
</div>
</div>
@ -44,7 +65,7 @@
</div>
<a href="/agent/supplyList" target="_blank"><span>详情</span></a>
</div>
<div class="list-wrap" style="overflow: auto;height:410px" v-infinite-scroll="load">
<div class="list-wrap" style="overflow: auto;height:410px">
<div v-for="(veritem, key) in serviceClassificationServices[classification_id]" :key="key" class="item-list">
<p class="item-list-name">{{ veritem.name }}</p>
<p class="flex-between" v-for="(type, index3) in veritem.types" :key="index3">
@ -60,16 +81,27 @@
</div>
<div class="home-main-right">
<div class="accountBalance flex-between common-area">
<span>账户余额&nbsp; <b>4560</b>&nbsp;</span>
<span class="hoverCommon">展开</span>
<div class="accountBalance common-area">
<div class="mb-16 red" v-if="walletList?.pub?.forzen_money>0">含冻结金额 {{ walletList?.pub?.forzen_money }} </div>
<div class="flex-between">
<span>账户余额&nbsp; <b>{{ walletList?.pub?.remain }}</b>&nbsp;</span>
<span class="hoverCommon" @click="isShowSpec = !isShowSpec">{{ isShowSpec ? '收起' : '展开' }}</span>
</div>
<div v-show="isShowSpec" class="mt-24" style="border-top: 1px solid #ebebeb;" v-if="walletList && walletList.spec && walletList.spec.length > 0">
<div class="mt-24"></div>
<p class="specMoney" v-for="(item, index) in walletList.spec" :key="index">{{ item.verdesc }} : {{ item.remain }}</p>
</div>
</div>
<div style=" background: #fff">
<div class="importantReminder common-area">
<h2>重要提醒</h2>
<div class="reminder1 column">
<p>淘宝账号即将过期</p>
<div @click="lookTaoBaoNum">查看</div>
<div class="reminder1 column" v-if="expireServices.taobao_expire_list && expireServices.taobao_expire_list.length > 0">
<p>淘宝应用即将过期</p>
<div @click="lookTaoBaoExpire">查看详情</div>
</div>
<div class="reminder3 column" v-if="expireServices.ssl_expire_list && expireServices.ssl_expire_list.length > 0">
<p>SSL证书https即将过期</p>
<div @click="lookSslExpire">查看详情</div>
</div>
<div class="reminder2 column hide">
<p>请尽快建立站点开始售卖</p>
@ -105,7 +137,7 @@
</div>
<div class="customWrap common-area">
<h2>联系客服</h2>
<img src="@/assets/home/customer.png" alt="">
<img src="@/assets/home/kf.png" alt="">
</div>
</div>
@ -131,6 +163,14 @@ export default {
supplyPriceList: [],
serviceList: [],
saleStats: [],
expireServices: [],
walletList: [],
isShowSpec: false,
preferredMarketList: [
{
@ -138,40 +178,22 @@ export default {
label: '多端系统'
},
{
desc: '电脑版、小程序、微信H5',
desc: '基于成交量的推广支持',
label: 'OCPC推广'
},
{
desc: '电脑版、小程序、微信H5',
desc: '二级、裂变分销,发展代理网络',
label: '多级分销'
},
{
desc: '电脑版、小程序、微信H5',
desc: '在报告或网页中嵌入广告',
label: '嵌入广告'
},
{
desc: '电脑版、小程序、微信H5',
desc: '自定义次数卡券或微信代金券',
label: '发放卡券'
},
],
salesList: [
{
num: 4560,
label: '销售金额'
},
{
num: 1000,
label: '成本支出'
},
{
num: 20,
label: '查重订单量'
},
{
num: 60,
label: 'AIGC订单量'
},
],
systemList: [
{
desc: 'AI中文范文2万字版、AI中文范文万字版已整合到AI中文范文内(可选3000/5000AI中文范文2万字版、AI中文范文万字版已整合到AI中文范文内(可选3000/5000/8000/10000/15000/000000/10000/…',
@ -182,93 +204,6 @@ export default {
label: 'AI范文整合的通知'
},
],
supplyList1: [
'查重服务',
'AIGC服务',
'写作辅助',
],
supplyList: [
{
name: '万方系统',
list: [
{
name: '万方硕博版',
word: '千字符',
price: 2.4
},
{
name: '万方硕博版',
word: '千字符',
price: 2.4
},
{
name: '万方硕博版',
word: '千字符',
price: 2.4
},
]
},
{
name: '维普系统',
list: [
{
name: '维普硕博版',
word: '千字符',
price: 2.4
},
{
name: '维普系统硕博版',
word: '千字符',
price: 2.4
},
{
name: '维普系统硕博版',
word: '千字符',
price: 2.4
},
]
},
{
name: 'PaperPass旗舰版',
list: [
{
name: '万方硕博版',
word: '千字符',
price: 2.4
},
]
},
{
name: '学术不端',
list: [
{
name: '硕博预审版',
word: '篇',
price: 2.4
},
{
name: '期刊小论文小篇幅版',
word: '篇',
price: 2.4
},
{
name: '期刊小论文小篇幅版',
word: '篇',
price: 2.4
},
{
name: '期刊小论文小篇幅版',
word: '篇',
price: 2.4
},
]
},
]
}
},
components: {
@ -277,10 +212,12 @@ export default {
},
mounted() {
this.getSupplyServiceList()
this.getSaleStats()
this.getExpireServices()
this.getWalletList()
},
methods: {
getSupplyServiceList() {
this.tableLoading = true
const that = this
that.serviceList = []
@ -298,15 +235,63 @@ export default {
this.serviceClassifications = response.data.service_classification;
this.serviceClassificationServices = response.data.service_classification_services;
this.supplyPriceList = response.data.supply_price;
console.log(this.supplyPriceList[2].price)
console.log(this.supplyPriceList[2].unit_format)
})
}).catch(error => {
console.error(error, 'error')
})
},
lookTaoBaoNum() {
getSaleStats() {
this.$http('POST', '/agentnew/ajax_get_sale_stats', {
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
this.saleStats = response.data
})
}).catch(error => {
console.error(error, 'error')
})
},
getExpireServices() {
this.$http('POST', '/agentnew/ajax_get_expire_services', {
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
this.expireServices = response.data
})
}).catch(error => {
console.error(error, 'error')
})
},
getWalletList() {
this.$http('POST', '/agentnew/ajax_get_wallet', {
},{
headers:{
'Auth': this.token
}
}).then(response => {
this.$nextTick(() => {
this.walletList = response.data
})
}).catch(error => {
console.error(error, 'error')
})
},
lookTaoBaoExpire() {
//
location.href = '/agent/payList'
},
lookSslExpire() {
//
location.href = '/agent/'
},
lookTaoBaoNum1() {
//
@ -326,6 +311,26 @@ a {
color: #006AFF;
}
.mt-24 {
margin-top: 24px;
}
.mb-16 {
margin-bottom: 16px;
}
.red {
color: #FF4D4F;
}
.specMoney {
font-family: Microsoft YaHei UI;
font-size: 14px;
font-weight: normal;
line-height: 22px;
letter-spacing: 0.08em;
color: #626573;
}
.home-wrap {
padding: 12px;
@ -654,6 +659,30 @@ a {
width: 100%;
}
}
.reminder3 {
border-radius: 4px;
background: linear-gradient(256deg, #FBE7D7 1%, #FEF7EC 53%);
padding: 14px 8px;
border: 1px solid transparent;
margin-top: 20px;
transition: all .3s;
&:hover {
transition: all .3s;
border-radius: 4px;
background: linear-gradient(256deg, #FBE7D7 1%, #FEF7EC 53%);
/* main/main_erro */
border: 1px solid #FB832D;
}
div {
display: flex;
justify-content: flex-end;
color: #FB832D;
margin-top: 10px;
width: 100%;
}
}
}
.carouselImage {

6
src/views/agent/payCertSetting.vue

@ -52,7 +52,7 @@
<div class="left-pay-item ">
<div class="flex-between">
<span>功能开关</span>
<GuipSwitch :modelValue="payinfo.is_auto_refund" :active-value="1" :inactive-value="0" activeText="开启" inactiveText="关闭" @change="updatePayAutoRefund(payinfo)"></GuipSwitch>
<GuipSwitch v-model="payinfo.is_auto_refund" :active-value="1" :inactive-value="0" activeText="开启" inactiveText="关闭" @change="updatePayAutoRefund(payinfo)"></GuipSwitch>
</div>
<p>开启后遇到退单的情况平台尽量在联系您并同意的情况下操作退款</p>
</div>
@ -94,7 +94,7 @@
<div class="baidu-wrap bidWrap">
<div class="bidwrap-item">
<h3 class="flex">分账开关<GuipSwitch :modelValue="payinfo.profit_share_status"
<h3 class="flex">分账开关<GuipSwitch v-model="payinfo.profit_share_status"
:active-value="1" :inactive-value="0"
@change="updateProfitShareStatus(payinfo)"></GuipSwitch>
</h3>
@ -387,7 +387,7 @@ export default {
updatePayAutoRefund(row) {
this.$http('POST', '/agentnew/ajax_setting_auto_refund', {
payid: this.$route.query.payid,
status: row.is_auto_refund == 1 ? 0 : 1,
status: row.is_auto_refund,
}, {
headers: {
'Auth': this.token

20
src/views/agent/payList.vue

@ -29,7 +29,7 @@
<!-- :active-value="1" :inactive-value="0"关闭 加冒号表示数字格式 -->
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<GuipSwitch v-if="scope.row.is_pay_public == 0" :modelValue="scope.row.is_auto_refund" active-value="1" inactive-value="0" @change="updateAutoRefund(scope.row)"></GuipSwitch>
<GuipSwitch v-if="scope.row.is_pay_public == 0" v-model="scope.row.is_auto_refund" active-value="1" inactive-value="0" @change="updateAutoRefund(scope.row)"></GuipSwitch>
</template>
</el-table-column>
<el-table-column prop="status" fixed="right" label="启用状态" min-width="30px">
@ -38,7 +38,7 @@
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<div class="flex">
<GuipSwitch :modelValue="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<GuipSwitch v-model="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<el-popover placement="bottom" width="150" trigger="click" v-if="scope.row.status == 1 && payBindSites[scope.row.payid] && payBindSites[scope.row.payid].length>0">
<div class="flex">
<img src="@/assets/site/tip.svg" alt=""> <span class="ml-8 bind-sites-title">启用站点</span>
@ -84,7 +84,7 @@
<!-- :active-value="1" :inactive-value="0"关闭 加冒号表示数字格式 -->
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<GuipSwitch v-if="scope.row.is_pay_public == 0" :modelValue="scope.row.is_auto_refund" active-value="1" inactive-value="0" @change="updateAutoRefund(scope.row)"></GuipSwitch>
<GuipSwitch v-if="scope.row.is_pay_public == 0" v-model="scope.row.is_auto_refund" active-value="1" inactive-value="0" @change="updateAutoRefund(scope.row)"></GuipSwitch>
</template>
</el-table-column>
<el-table-column prop="status" fixed="right" label="启用状态" min-width="30px">
@ -93,7 +93,7 @@
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<div class="flex">
<GuipSwitch :modelValue="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<GuipSwitch v-model="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<el-popover placement="bottom" width="150" trigger="click" v-if="scope.row.status == 1 && payBindSites[scope.row.payid] && payBindSites[scope.row.payid].length>0">
<div class="flex">
<img src="@/assets/site/tip.svg" alt=""> <span class="ml-8 bind-sites-title">启用站点</span>
@ -145,7 +145,7 @@
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<div class="flex">
<GuipSwitch :modelValue="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<GuipSwitch v-model="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<el-popover placement="bottom" width="150" trigger="click" v-if="scope.row.status == 1 && payBindSites[scope.row.payid] && payBindSites[scope.row.payid].length>0">
<div class="flex">
<img src="@/assets/site/tip.svg" alt=""> <span class="ml-8 bind-sites-title">启用站点</span>
@ -198,7 +198,7 @@
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<div class="flex">
<GuipSwitch :modelValue="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<GuipSwitch v-model="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<el-popover placement="bottom" width="150" trigger="click" v-if="scope.row.status == 1 && payBindSites[scope.row.payid] && payBindSites[scope.row.payid].length>0">
<div class="flex">
<img src="@/assets/site/tip.svg" alt=""> <span class="ml-8 bind-sites-title">启用站点</span>
@ -250,7 +250,7 @@
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<div class="flex">
<GuipSwitch :modelValue="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<GuipSwitch v-model="scope.row.status" active-value="1" inactive-value="0" @change="updatePayStatus(scope.row)"></GuipSwitch>
<el-popover placement="bottom" width="150" trigger="click" v-if="scope.row.status == 1 && payBindSites[scope.row.payid] && payBindSites[scope.row.payid].length>0">
<div class="flex">
<img src="@/assets/site/tip.svg" alt=""> <span class="ml-8 bind-sites-title">启用站点</span>
@ -577,7 +577,7 @@ export default {
} else {
this.$http('POST', '/agentnew/ajax_update_pay_status', {
payid: row.payid,
status: row.status==1 ? 0 : 1,
status: row.status,
}, {
headers: {
'Auth': this.token
@ -599,10 +599,10 @@ export default {
},
updateAutoRefund(row) {
updateAutoRefund(row) {
this.$http('POST', '/agentnew/ajax_setting_auto_refund', {
payid: row.payid,
status: row.status==1 ? 0 : 1,
status: row.is_auto_refund,
}, {
headers: {
'Auth': this.token

4
src/views/agent/paySetting.vue

@ -32,7 +32,7 @@
<!-- :active-value="1" :inactive-value="0"关闭 加冒号表示数字格式 -->
<!-- active-value="1" inactive-value="0"关闭 不加冒号表示字符串 -->
<!-- 传入的modelvalue 为数字 0 或者 1 -->
<GuipSwitch :modelValue="payStatus" :active-value="1" :inactive-value="0" @change="updatePayStatus(payinfo)" activeText="开启" inactiveText="关闭"></GuipSwitch>
<GuipSwitch v-model="payStatus" :active-value="1" :inactive-value="0" @change="updatePayStatus(payinfo)" activeText="开启" inactiveText="关闭"></GuipSwitch>
</div>
<p class="ml-23 flex gray">{{ payinfo.account }}</p>
</div>
@ -132,7 +132,7 @@ export default {
updatePayStatus(row) {
this.$http('POST', '/agentnew/ajax_update_pay_status', {
payid: this.$route.query.payid,
status: row.status==1 ? 0 : 1,
status: row.status,
}, {
headers: {
'Auth': this.token

4
src/views/agent/siteMobileSetting.vue

@ -39,7 +39,7 @@
<div class="left-pay-item ">
<div class="flex-between">
<span>H5开关</span>
<GuipSwitch :modelValue="siteInfo.is_open_h5" :active-value="1" :inactive-value="0" activeText="开" inactiveText="关" @change="updateSiteH5Status"></GuipSwitch>
<GuipSwitch v-model="siteInfo.is_open_h5" :active-value="1" :inactive-value="0" activeText="开" inactiveText="关" @change="updateSiteH5Status"></GuipSwitch>
</div>
<div v-if="siteWxpayInfo.appid">
@ -406,7 +406,7 @@ export default {
updateSiteH5Status() {
this.$http('POST', '/agentnew/ajax_update_site_h5_config', {
uid: this.$route.query.uid,
status: this.siteInfo.is_open_h5==1 ? 0 : 1
status: this.siteInfo.is_open_h5
}, {
headers: {
'Auth': this.token

988
src/views/agent/siteServiceAdd.vue

File diff suppressed because it is too large

82
src/views/agent/siteServiceList.vue

@ -89,7 +89,7 @@
placement="bottom" trigger="manual" :append-to-body="false" :visible-arrow="true"
popper-class="custom-popover" @show="popshow" >
<div style="text-align: center">
<GuipInput ref="GuipInput" width="252px" v-model="row.sort_id" label="排序" placeholder="请输入数字"></GuipInput>
<GuipInput ref="GuipInput" width="252px" v-model="row.edit_sort_id" label="排序" placeholder="请输入数字"></GuipInput>
<p style="width: 252px;margin-left: 40px;text-align: right;color: #8A9099;letter-spacing: 0.08em;">输入0的数越小排序越前重复则新者优先0则默认排序</p>
<div class="flex" style="text-align: right; margin-top: 32px;justify-content: flex-end;">
<GuipButton size="medium" @click="cancelEdit(row, 'sort')">取消</GuipButton>
@ -372,25 +372,24 @@ export default {
saveEdit(row, type) {
row[type + 'PopoverVisible'] = false; //
if(type == 'price') this.savePrice(row)
if(type == 'sort') this.saveUpdateInfo(row, true)
if(type == 'sort') this.saveSort(row)
},
//
cancelEdit(row, type) {
row[type + 'PopoverVisible'] = false;
this.popoverFlag = false
// row[type + '_popover'] = false; //
this.$Message.info('已取消编辑');
// this.$Message.info('');
},
random() {
var randomNumber = Math.random();
return randomNumber
},
savePrice(row){
async savePrice(row){
if (row.price === '') {
this.$message.warning('价格不能为空');
return;
}
row.price_desc = getServicePriceDesc(row.price, row.price_unit, row.price_unit_num);
let obj = {}
obj.uid = this.uid
@ -402,43 +401,28 @@ export default {
obj.unit_piece = row.price
}
this.saveRequest('/agentnew/ajax_set_service_price', obj, row)
const res = await this.saveRequest('/agentnew/ajax_set_service_price', obj)
if(res) row.price_desc = getServicePriceDesc(row.price, row.price_unit, row.price_unit_num);
},
onSwitchChange(row){
row.is_index_display = row.is_index_display == "1" ? "0" : "1"
this.saveUpdateInfo(row)
},
saveUpdateInfo(row, resort = false){
async onSwitchChange(row){
console.log(row)
let obj = {}
obj.uid = this.uid
obj.type = row.type
obj.sort_id = row.sort_id
obj.is_index_display = row.is_index_display
obj.is_display_price = row.is_display_price
obj.is_recommend = row.is_recommend
this.saveRequest('/agentnew/ajax_update_service_show', obj, row, resort)
const res = await this.saveRequest('/agentnew/ajax_update_service_show', obj)
if(!res) row.is_index_display = row.is_index_display === "1" ? "0" : "1"
},
saveRequest(url, obj, row, resort = false){
const that = this
this.$http('POST', url, obj,{
headers:{
'Auth': this.token
}
}).then(response => {
if(response.status){
that.$message.success('保存成功');
this.$nextTick(() => {
that.$set(that.serviceList, row)
if(resort){
this.sortServiceList()
}
})
return true;
}
that.$message.error(response.info);
}).catch(error => {
console.error(error, 'error')
})
async saveSort(row){
let obj = {}
obj.uid = this.uid
obj.type = row.type
obj.sort_id = row.sort_id
const res = await this.saveRequest('/agentnew/ajax_update_service_show', obj)
if(res) {
row.sort_id = row.edit_sort_id;
this.sortServiceList()
}
},
sortServiceList() {
const sortable = this.serviceList
@ -454,6 +438,23 @@ export default {
return row;
});
},
async saveRequest(url, obj){
const that = this
return await this.$http('POST', url, obj,{
headers:{
'Auth': this.token
}
}).then(response => {
if(response.status){
that.$message.success('保存成功');
return true;
}
that.$message.error(response.info);
return false;
}).catch(error => {
console.error(error, 'error')
})
},
popPayMentModal(row){
this.dialogVisible = true;
this.dialogTitle = row.type_desc + '-收款方式'
@ -483,7 +484,7 @@ export default {
this.payList = payList
},
//
handleConfirm() {
async handleConfirm() {
this.dialogVisible = false;
let obj = {}
@ -504,9 +505,10 @@ export default {
});
obj.info = obj.info.substr(1, obj.info.length-1);
if(hasClose) this.editRow.payment_method_desc = '自定义支付';
this.saveRequest('/agentnew/ajax_payment_switch', obj, this.editRow)
const res = await this.saveRequest('/agentnew/ajax_payment_switch', obj, this.editRow)
if(res && hasClose) {
this.editRow.payment_method_desc = '自定义支付';
}
},
//
handleCancel() {

37
src/views/elementGroups.vue

@ -132,9 +132,11 @@
</el-table-column>
<el-table-column prop="name2" label="姓名" width="150"></el-table-column>
<el-table-column prop="price" label="价格" width="150">
<el-table-column prop="statu" label="价格" width="150">
<template slot-scope="scope">
<span @click="handlePriceClick(scope.row)">{{ scope.row.price }}</span>
<GuipSwitch v-model="scope.row.statu" activeText="默认类型boolean" inactiveText="关闭" :active-value="1" :inactive-value="0"
@change="onSwitchChange1(scope.row)">
</GuipSwitch>
</template>
</el-table-column>
<el-table-column prop="address" label="地址1" width="150"> </el-table-column>
@ -372,25 +374,26 @@
<label for="">开关L</label>
<!-- active-value 开启状态的值 -->
<!-- inactive-value 关闭状态的值 -->
<GuipSwitch :modelValue="switchValue" activeText="默认类型boolean" inactiveText="关闭"
<GuipSwitch v-model="form.switchValue3" activeText="默认类型boolean" inactiveText="关闭" :active-value="true" :inactive-value="false"
@change="onSwitchChange">
</GuipSwitch>
</div>
<div class="ele-item">
<label for="">开关L</label>
<!-- 左侧不需要添加float 属性 -->
<GuipSwitch :modelValue="switchValue" float="right" activeText="文案在右,默认左侧" inactiveText="关闭"
<GuipSwitch v-model="switchValue" float="right" activeText="文案在右,默认左侧" inactiveText="关闭"
@change="onSwitchChange">
</GuipSwitch>
</div>
<div class="ele-item">
<label for="">开关L</label>
<GuipSwitch :modelValue="switchValue1" :active-value="1" :inactive-value="0" activeText="number"
<GuipSwitch v-model="switchValue1" :active-value="1" :inactive-value="0" activeText="number"
@change="onSwitchChange">
</GuipSwitch>
<GuipSwitch :modelValue="switchValue2" active-value="0" inactive-value="1" activeText="string"
<GuipSwitch v-model="form.switchValue2" active-value="0" inactive-value="1" activeText="string"
@change="onSwitchChange">
</GuipSwitch>
<p>当前值switchValue2{{ this.form.switchValue2 }}</p>
</div>
<div class="flex ele-item">
<label for="">inputdrop组合使用(默认使用)</label>
@ -692,6 +695,7 @@ export default {
timer: null,
date1: '',
switchValue: true,
switchValue3: true,
switchValue1: 1,
switchValue2: '0',
dialogVisible1: false,
@ -702,6 +706,8 @@ export default {
form: {
username: '',
language: '',
switchValue3:true,
switchValue2: '0',
domain_set: '',
domainSuffix: '11',
domainSuffix1: '.chachongz.com',
@ -776,6 +782,7 @@ export default {
address: '上海市普陀区金沙江路 1518 弄',
price: '20',
age: 20,
statu:1,
//
edit_name: '王小虎', edit_address: '上海市普陀区金沙江路 1518 弄'
}, {
@ -784,6 +791,8 @@ export default {
address: '上海市普陀区金沙江路 151811 弄',
price: '10',
age: 30,
statu:1,
edit_name: '王小虎11', edit_address: '上海市普陀区金沙江路 151811 弄'
}, {
@ -791,6 +800,7 @@ export default {
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
price: '200',
statu:0,
}, {
date: '2016-05-01',
name: '王小虎',
@ -979,6 +989,10 @@ export default {
}
},
methods: {
switchChange(value){
console.log(value,'====value');
console.log(this.switchValue1,'===uuuu');
},
handleEvent(data){
console.log(data,'data')
},
@ -1125,10 +1139,17 @@ export default {
return randomNumber
},
onSwitchChange(value) {
console.log('Switch 状态变化:', this.switchValue, value);
console.log('Switch/ 状态变化:',this.switchValue, value);
// console.log('Switch :',this.form.switchValue2,this.form.switchValue3, value);
},
onSwitchChange1(value) {
//
// console.log(this.tableData2,value,'this.tableData2===');
console.log('Switch/ 状态变化:', value.statu);
},
// ---start
openDialog() {
console.log(this.switchValue1,'switchValue1');
this.dialogVisible = true;
},
openDialog1() {
@ -1189,7 +1210,7 @@ export default {
console.log(data, 'radio--data');
},
selectChangeTest(val){
console.log(val,'select-----选中的');
console.log(val,'select-----选中的',this.form.card,this.form.card1);
},
handleClick(row) {
console.log(row);

Loading…
Cancel
Save