diff --git a/package.json b/package.json index 6937d3b..c07fe02 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "crypto-js": "^4.2.0", "pinia": "^3.0.2", "pinia-plugin-persistedstate": "^4.2.0", + "plyr": "^3.7.8", "tinymce": "^7.8.0", "uqrcodejs": "^4.0.7", "uuid": "^11.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e5944cf..d63efa8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: pinia-plugin-persistedstate: specifier: ^4.2.0 version: 4.2.0(pinia@3.0.2(vue@3.5.13)) + plyr: + specifier: ^3.7.8 + version: 3.7.8 tinymce: specifier: ^7.8.0 version: 7.8.0 @@ -1412,6 +1415,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + custom-event-polyfill@1.0.7: + resolution: {integrity: sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==} + dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} @@ -1895,6 +1901,9 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + loadjs@4.3.0: + resolution: {integrity: sha512-vNX4ZZLJBeDEOBvdr2v/F+0aN5oMuPu7JTqrMwp+DtgK+AryOlpy6Xtm2/HpNr+azEa828oQjOtWsB6iDtSfSQ==} + local-pkg@1.1.1: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} @@ -2121,6 +2130,9 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + plyr@3.7.8: + resolution: {integrity: sha512-yG/EHDobwbB/uP+4Bm6eUpJ93f8xxHjjk2dYcD1Oqpe1EcuQl5tzzw9Oq+uVAzd2lkM11qZfydSiyIpiB8pgdA==} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -2187,6 +2199,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + rangetouch@2.0.1: + resolution: {integrity: sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==} + rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} @@ -2519,6 +2534,9 @@ packages: uqrcodejs@4.0.7: resolution: {integrity: sha512-84+aZmD2godCVI+93lxE3YUAPNY8zAJvNA7xRS7R7U+q57KzMDepBSfNCwoRUhWOfR6eHFoAOcHRPwsP6ka1cA==} + url-polyfill@1.1.13: + resolution: {integrity: sha512-tXzkojrv2SujumYthZ/WjF7jaSfNhSXlYMpE5AYdL2I3D7DCeo+mch8KtW2rUuKjDg+3VXODXHVgipt8yGY/eQ==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -4095,6 +4113,8 @@ snapshots: csstype@3.1.3: {} + custom-event-polyfill@1.0.7: {} + dayjs@1.11.13: {} debug@4.4.0: @@ -4560,6 +4580,8 @@ snapshots: lines-and-columns@1.2.4: {} + loadjs@4.3.0: {} + local-pkg@1.1.1: dependencies: mlly: 1.7.4 @@ -4764,6 +4786,14 @@ snapshots: exsolve: 1.0.5 pathe: 2.0.3 + plyr@3.7.8: + dependencies: + core-js: 3.42.0 + custom-event-polyfill: 1.0.7 + loadjs: 4.3.0 + rangetouch: 2.0.1 + url-polyfill: 1.1.13 + possible-typed-array-names@1.1.0: {} postcss-import@15.1.0(postcss@8.5.3): @@ -4817,6 +4847,8 @@ snapshots: queue-microtask@1.2.3: {} + rangetouch@2.0.1: {} + rc9@2.1.2: dependencies: defu: 6.1.4 @@ -5199,6 +5231,8 @@ snapshots: uqrcodejs@4.0.7: {} + url-polyfill@1.1.13: {} + util-deprecate@1.0.2: {} util@0.12.5: diff --git a/src/api/merchant.js b/src/api/merchant.js index 091e5b8..d96f53b 100644 --- a/src/api/merchant.js +++ b/src/api/merchant.js @@ -232,6 +232,69 @@ const merchant = { data: {id} }); }, + addChildrenComment: async (data) => { + return request({ + url: '/index/task/addChildrenComment', + method: Method.POST, + data: data + }); + }, + getChildrenComment: async (id) => { + return request({ + url: '/index/task/getChildrenComment', + method: Method.POST, + data: {id} + }); + }, + delChildrenComment: async (id) => { + return request({ + url: '/index/task/delChildrenComment', + method: Method.POST, + data: {id} + }); + }, + editChildrenMaterial: async (data) => { + return request({ + url: '/index/task/editChildrenMaterial', + method: Method.POST, + data: data + }); + }, + editChildrenMaterimal: async (data) => { + return request({ + url: '/index/task/editChildrenMaterimal', + method: Method.POST, + data: data + }); + }, + startTask: async (data) => { + return request({ + url: '/index/task/startTask', + method: Method.POST, + data: data + }); + }, + moneyToTask: async (id) => { + return request({ + url: '/index/task/moneyToTask', + method: Method.POST, + data: {id} + }); + }, + stopTask: async (id) => { + return request({ + url: '/index/task/stopTask', + method: Method.POST, + data: {id} + }); + }, + endTask: async (id) => { + return request({ + url: '/index/task/endTask', + method: Method.POST, + data: {id} + }); + } } export default merchant; diff --git a/src/assets/images/back.png b/src/assets/images/back.png new file mode 100644 index 0000000..222e8b9 Binary files /dev/null and b/src/assets/images/back.png differ diff --git a/src/components/Comment/index.vue b/src/components/Comment/index.vue new file mode 100644 index 0000000..c92cfb4 --- /dev/null +++ b/src/components/Comment/index.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/LayoutHeader/index.vue b/src/components/LayoutHeader/index.vue index 0298da6..20acc96 100644 --- a/src/components/LayoutHeader/index.vue +++ b/src/components/LayoutHeader/index.vue @@ -16,11 +16,11 @@ const UserStore = useUserStore(); - {{ UserStore.userInfo.nickname || UserStore.userInfo.mobile }} + {{ UserStore?.userInfo?.nickname || UserStore?.userInfo?.mobile }} diff --git a/src/pages/merchant/components/Alipay.vue b/src/components/Pay/Alipay.vue similarity index 98% rename from src/pages/merchant/components/Alipay.vue rename to src/components/Pay/Alipay.vue index c5cbf07..ca905fb 100644 --- a/src/pages/merchant/components/Alipay.vue +++ b/src/components/Pay/Alipay.vue @@ -1,7 +1,7 @@ + + + + + + diff --git a/src/components/Plyr/Plyr.vue b/src/components/Plyr/Plyr.vue new file mode 100644 index 0000000..e3a4ea5 --- /dev/null +++ b/src/components/Plyr/Plyr.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/components/PreviewTaskModal/PreviewTaskModal.vue b/src/components/PreviewTaskModal/PreviewTaskModal.vue index 26291ef..0f36ab7 100644 --- a/src/components/PreviewTaskModal/PreviewTaskModal.vue +++ b/src/components/PreviewTaskModal/PreviewTaskModal.vue @@ -1,7 +1,9 @@ @@ -64,41 +68,37 @@ const refuseTaskChildren = async () => { -
+
#{{ v }}
+
+ 暂无话题 +
-
- + - + +
+
+ 暂无话题
-
-
- {{ v.id }}. -
-
- - 回复{{ v.pid }}: -
- - - 第三个很好用,大家可以在网上搜同款 -
-
+
+ +
+
+ 暂无评论区内容
@@ -107,14 +107,18 @@ const refuseTaskChildren = async () => { diff --git a/src/components/XImage/Index.vue b/src/components/XImage/Index.vue index fc1fb3a..d4b6eb1 100644 --- a/src/components/XImage/Index.vue +++ b/src/components/XImage/Index.vue @@ -1,9 +1,11 @@ + + + + diff --git a/src/hooks/usePayTask.js b/src/hooks/usePayTask.js new file mode 100644 index 0000000..cb08781 --- /dev/null +++ b/src/hooks/usePayTask.js @@ -0,0 +1,16 @@ +import {createApp} from "vue"; + +import PayTask from "../components/Pay/PayTask.vue"; + +export const usePayTask = () => { + const container = document.createElement('div'); + document.body.appendChild(container); + const app = createApp(PayTask); + const vm = app.mount(container); + + const {open} = vm; + + return { + open + }; +} diff --git a/src/pages/merchant/components/AddComment.vue b/src/pages/merchant/components/AddComment.vue index ae0bd79..00f995e 100644 --- a/src/pages/merchant/components/AddComment.vue +++ b/src/pages/merchant/components/AddComment.vue @@ -3,20 +3,38 @@ import XSelect from "../../../components/XSelect/index.vue"; import {reactive, ref} from "vue"; import UploadAvatar from "../../../components/upload/UploadAvatar.vue"; import Api from "../../../api/index.js"; +import {Message} from "@arco-design/web-vue"; -const {id} = defineProps({ - id: { - type: Number, +const emits = defineEmits(['success']); +const {item, material} = defineProps({ + item: { + type: Object, + default: null, + }, + material: { + type: Object, default: null, } }); const form = reactive({ - type: 0, - files: [] + is_reply: 0, + pid: null, + files: [], + intro: null, }); const visible = ref(false); const success = async () => { - + const {msg} = await Api.merchant.addChildrenComment({ + id: material.id, + material_id: item.id, + pid: form.pid, + image: form.files, + intro: form.intro, + is_reply: form.is_reply, + }); + Message.success(msg); + visible.value = false; + emits('success'); } @@ -34,14 +52,18 @@ const success = async () => { v-model:visible="visible" @ok="success"> - - + + - - + + + { - + diff --git a/src/pages/merchant/components/AddMaterial.vue b/src/pages/merchant/components/AddMaterial.vue index 6b5cf15..bdabbb1 100644 --- a/src/pages/merchant/components/AddMaterial.vue +++ b/src/pages/merchant/components/AddMaterial.vue @@ -1,18 +1,24 @@ @@ -44,7 +75,7 @@ const success = async () => { v-model:visible="visible" title="添加素材">
-
已添加5个素材(长摁图片可拖动排序)
+
已添加{{ targetList.length }}个素材(长摁图片可拖动排序)
{ + const {data} = await Api.merchant.getMaterialList(id); + list.length = 0; + list.push(...data); +} + onMounted(() => { - Api.merchant.getMaterialList(id).then(({data}) => { - list.length = 0; - list.push(...data); - }); + getMaterialList(); }); const select = (v) => { const flag = selectList.value.findIndex(k => k.id === v.id); @@ -27,11 +30,18 @@ const select = (v) => { selectList.value.push(v); } } -const handle = async () => { - if (type === 0) { - +const handleImage = async () => { + if (type.value === 0) { + selectList.value.filter(v => typeof v.id === 'number').forEach(v => { + Api.merchant.delMaterial(v.id); + }); } } + +defineExpose({ + getMaterialList, + handleImage +});