update
This commit is contained in:
@@ -13,7 +13,8 @@ const emits = defineEmits(['search']);
|
|||||||
const {config, title} = defineProps({
|
const {config, title} = defineProps({
|
||||||
config: {
|
config: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: [],
|
||||||
|
required: true,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|||||||
@@ -0,0 +1,96 @@
|
|||||||
|
<script setup>
|
||||||
|
import {ref} from 'vue';
|
||||||
|
|
||||||
|
const visible = ref(false);
|
||||||
|
const activeKey = ref(1);
|
||||||
|
|
||||||
|
const success = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const refuse = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<a-link :hoverable="false" @click="visible=true">预览</a-link>
|
||||||
|
|
||||||
|
<a-modal
|
||||||
|
title-align="start"
|
||||||
|
title="预览"
|
||||||
|
v-model:visible="visible">
|
||||||
|
<a-tabs v-model:active-key="activeKey" type="rounded">
|
||||||
|
<a-tab-pane v-for="item in 3" :title="`素材${item}`" :key="item">
|
||||||
|
<a-form
|
||||||
|
layout="vertical">
|
||||||
|
<a-form-item label="标题">
|
||||||
|
<a-input model-value="终于让我给发现啦!就这个再加上芙贝柔一起绝了!"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="正文">
|
||||||
|
<a-textarea
|
||||||
|
auto-size
|
||||||
|
:max-length="1000"
|
||||||
|
show-word-limit
|
||||||
|
model-value="终于让我给发现啦!就这个再加上芙贝柔一起绝了!终于让我给发现啦!就这个再加上芙贝柔一起绝风格反对赌东道赌东道了!终于让我给发现啦!就这个再加上芙贝柔一起绝了!就这个再加...">
|
||||||
|
</a-textarea>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="话题">
|
||||||
|
<div id="tag-list" class="w-full bg-[var(--color-neutral-2)] p-[4px]">
|
||||||
|
<a-tag>#一起变美</a-tag>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<a-form-item label="素材">
|
||||||
|
<a-image
|
||||||
|
width="60px"
|
||||||
|
height="60px"
|
||||||
|
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||||
|
</a-image>
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
<a-form-item label="评论区内容">
|
||||||
|
<div class="flex flex-col gap-[8px] w-full">
|
||||||
|
<div class="w-full flex gap-[10px] items-center">
|
||||||
|
1.
|
||||||
|
<div class="flex-grow bg-[var(--color-neutral-2)] p-[4px] h-[40px] flex items-center">
|
||||||
|
<a-image
|
||||||
|
class="mr-[12px]"
|
||||||
|
width="30px"
|
||||||
|
height="30px"
|
||||||
|
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||||
|
</a-image>
|
||||||
|
第三个很好用,大家可以在网上搜同款
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<div class="flex items-center gap-[8px]">
|
||||||
|
<a-radio-group>
|
||||||
|
<template v-for="item in 3" :key="item">
|
||||||
|
<a-radio v-show="activeKey === item" :value="item">选中</a-radio>
|
||||||
|
</template>
|
||||||
|
</a-radio-group>
|
||||||
|
|
||||||
|
<a-button @click="success" type="primary" class="ml-auto">通过</a-button>
|
||||||
|
<a-button @click="refuse">拒绝</a-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
#tag-list {
|
||||||
|
:deep(.arco-tag) {
|
||||||
|
color: #000;
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid rgb(229, 230, 235);
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<script setup>
|
||||||
|
import {ref, reactive} from "vue";
|
||||||
|
import XSelect from '../../../../../components/XSelect/index.vue';
|
||||||
|
import Api from "../../../../../api/index.js";
|
||||||
|
|
||||||
|
const visible = ref(false);
|
||||||
|
const form = reactive({
|
||||||
|
state: ''
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<a-link :hoverable="false" status="danger" @click="visible=true">拒绝</a-link>
|
||||||
|
|
||||||
|
<a-modal
|
||||||
|
title-align="start"
|
||||||
|
title="任务审核拒绝"
|
||||||
|
v-model:visible="visible">
|
||||||
|
<a-form :model="form">
|
||||||
|
<a-form-item label="拒绝原因">
|
||||||
|
<XSelect :api="Api.system.getSelect" placeholder="请输入拒绝原因"></XSelect>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<script setup>
|
||||||
|
import XSelect from "../../../../../components/XSelect/index.vue";
|
||||||
|
import {ref, reactive} from "vue";
|
||||||
|
import Api from "../../../../../api/index.js";
|
||||||
|
|
||||||
|
const visible = ref(false);
|
||||||
|
const form = reactive({
|
||||||
|
name: null,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<a-link :hoverable="false" status="success" @click="visible=true">通过</a-link>
|
||||||
|
|
||||||
|
<a-modal
|
||||||
|
title-align="start"
|
||||||
|
title="任务审核通过"
|
||||||
|
v-model:visible="visible">
|
||||||
|
<a-form :model="form" layout="vertical">
|
||||||
|
<a-form-item label="该任务对达人端的展示价格为:">
|
||||||
|
<XSelect :api="Api.system.getSelect"></XSelect>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="安全评分">
|
||||||
|
<XSelect :api="Api.system.getSelect" placeholder="请输入安全评分,满分100"></XSelect>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="耗时评分">
|
||||||
|
<XSelect :api="Api.system.getSelect" placeholder="请输入耗时评分,满分100"></XSelect>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import {h} from 'vue';
|
||||||
|
import {Modal} from "@arco-design/web-vue";
|
||||||
|
|
||||||
|
const openTerminateTask = () => {
|
||||||
|
Modal.warning({
|
||||||
|
title: '确认终止任务',
|
||||||
|
width: 464,
|
||||||
|
hideCancel: false,
|
||||||
|
okText: '确定终止',
|
||||||
|
okButtonProps: {
|
||||||
|
status: 'danger',
|
||||||
|
},
|
||||||
|
content: h('div', {}, [
|
||||||
|
h('div', {class: 'text-[14px]'}, '终止任务后,后续达人将无法接单,但不影响已经接单的达人'),
|
||||||
|
h('div', {class: 'text-[14px] text-[#4E5969]'}, '*请商家及时处理已经被接单的子任务,处理完毕后,剩余任务金额将返款至商家钱包')
|
||||||
|
]),
|
||||||
|
onOk: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export default openTerminateTask;
|
||||||
@@ -1,10 +1,146 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
import {reactive, ref} from "vue";
|
||||||
|
import Filter from "../../../../components/Filter/index.vue";
|
||||||
|
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||||
|
import Api from "../../../../api/index.js";
|
||||||
|
import RejectTaskModal from "./components/RejectTaskModal.vue";
|
||||||
|
import TaskPassedReviewModal from "./components/TaskPassedReviewModal.vue";
|
||||||
|
import PreviewTaskModal from "./components/PreviewTaskModal.vue";
|
||||||
|
import openTerminateTask from "../../../../components/TerminateTask/TerminateTask.js";
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '任务编号',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '子任务编号',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '子任务状态',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '平台审核状态',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
slotName: 'action',
|
||||||
|
width: 300,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const FilterConfig = [
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'input',
|
||||||
|
label: '任务编号',
|
||||||
|
placeholder: '任务编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'input',
|
||||||
|
label: '子任务编号',
|
||||||
|
placeholder: '子任务编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'select',
|
||||||
|
label: '平台审核状态',
|
||||||
|
placeholder: '请选择平台审核状态',
|
||||||
|
api: async () => ({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '选项一',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项二',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项三',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'select',
|
||||||
|
label: '子任务状态',
|
||||||
|
placeholder: '请选择子任务状态',
|
||||||
|
api: async () => ({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '选项一',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项二',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项三',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'input',
|
||||||
|
label: '达人任务编号',
|
||||||
|
placeholder: '请输入达人任务编号'
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const po = reactive({
|
||||||
|
wd: null,
|
||||||
|
});
|
||||||
|
const vo = reactive({
|
||||||
|
page: '',
|
||||||
|
rows: [],
|
||||||
|
total: 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
const {loading, pagination, initFetchData} = useTableQuery({
|
||||||
|
parameter: po,
|
||||||
|
api: Api.system.getData,
|
||||||
|
callback: (data) => {
|
||||||
|
Object.assign(vo, data);
|
||||||
|
console.log(vo);
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- 子任务审核 -->
|
<!-- 子任务审核 -->
|
||||||
子任务审核
|
<a-card>
|
||||||
|
<Filter
|
||||||
|
v-model:from="po"
|
||||||
|
:config="FilterConfig">
|
||||||
|
</Filter>
|
||||||
|
|
||||||
|
<a-table
|
||||||
|
:data="vo.rows"
|
||||||
|
@page-change="(e) => pagination.current = e"
|
||||||
|
:pagination="pagination"
|
||||||
|
:loading="loading"
|
||||||
|
:columns="columns"
|
||||||
|
class="flex-grow">
|
||||||
|
<template v-slot:action>
|
||||||
|
<div class="flex items-center gap-[20px] justify-between">
|
||||||
|
<PreviewTaskModal></PreviewTaskModal>
|
||||||
|
<TaskPassedReviewModal></TaskPassedReviewModal>
|
||||||
|
<RejectTaskModal></RejectTaskModal>
|
||||||
|
<a-link :hoverable="false" status="danger" @click="openTerminateTask">终止子任务</a-link>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,10 +1,191 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
|
import {reactive} from 'vue';
|
||||||
|
import Filter from "../../../../components/Filter/index.vue";
|
||||||
|
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||||
|
import Api from "../../../../api/index.js";
|
||||||
|
import TaskPassedReviewModal from "./components/TaskPassedReviewModal.vue";
|
||||||
|
import openTerminateTask from "./components/openTerminateTask.js";
|
||||||
|
import RejectTaskModal from "./components/RejectTaskModal.vue";
|
||||||
|
import TerminateTask from "../../../../components/TerminateTask/TerminateTask.js";
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '任务编号',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '任务名称',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '发布渠道',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '创建时间',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '子任务数',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '子任务报价',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '商家ID',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '平台报价',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '平台审核状态',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '商家任务状态',
|
||||||
|
dataIndex: 'key',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
slotName: 'action',
|
||||||
|
width: 250,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const FilterConfig = [
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'input',
|
||||||
|
label: '商家ID',
|
||||||
|
placeholder: '请输入商家ID',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'input',
|
||||||
|
label: '任务名称',
|
||||||
|
placeholder: '请输入任务名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'select',
|
||||||
|
label: '任务渠道',
|
||||||
|
placeholder: '请选择任务渠道',
|
||||||
|
api: async () => ({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '选项一',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项二',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项三',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'select',
|
||||||
|
label: '任务状态',
|
||||||
|
placeholder: '请选择任务状态',
|
||||||
|
api: async () => ({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '选项一',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项二',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项三',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'datetime',
|
||||||
|
label: '创建时间',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'wd',
|
||||||
|
type: 'select',
|
||||||
|
label: '审核状态',
|
||||||
|
placeholder: '请选择审核状态',
|
||||||
|
api: async () => ({
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
name: '选项一',
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项二',
|
||||||
|
id: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '选项三',
|
||||||
|
id: 3,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const po = reactive({
|
||||||
|
wd: null,
|
||||||
|
});
|
||||||
|
const vo = reactive({
|
||||||
|
page: '',
|
||||||
|
rows: [],
|
||||||
|
total: 0,
|
||||||
|
});
|
||||||
|
|
||||||
|
const {loading, pagination, initFetchData} = useTableQuery({
|
||||||
|
parameter: po,
|
||||||
|
api: Api.system.getData,
|
||||||
|
callback: (data) => {
|
||||||
|
Object.assign(vo, data);
|
||||||
|
console.log(vo);
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- 任务审核 -->
|
<!-- 任务审核 -->
|
||||||
任务审核
|
<a-card>
|
||||||
|
<Filter
|
||||||
|
v-model:from="po"
|
||||||
|
:config="FilterConfig">
|
||||||
|
</Filter>
|
||||||
|
|
||||||
|
<a-table
|
||||||
|
:data="vo.rows"
|
||||||
|
@page-change="(e) => pagination.current = e"
|
||||||
|
:pagination="pagination"
|
||||||
|
:loading="loading"
|
||||||
|
:columns="columns"
|
||||||
|
class="flex-grow">
|
||||||
|
<template v-slot:action>
|
||||||
|
<div class="flex items-center gap-[20px]">
|
||||||
|
<a-link :hoverable="false">编辑</a-link>
|
||||||
|
<TaskPassedReviewModal></TaskPassedReviewModal>
|
||||||
|
<RejectTaskModal></RejectTaskModal>
|
||||||
|
<a-link :hoverable="false" status="danger" class="ml-auto" @click="TerminateTask">终止</a-link>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {reactive} from "vue";
|
|||||||
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||||
import Api from "../../../../api/index.js";
|
import Api from "../../../../api/index.js";
|
||||||
import RefuseModal from "./components/RefuseModal.vue";
|
import RefuseModal from "./components/RefuseModal.vue";
|
||||||
import openTerminateTask from "../../components/TerminateTask.js";
|
import openTerminateTask from "../../../../components/TerminateTask/TerminateTask.js";
|
||||||
import BlackjackExpertModal from "../../components/BlackjackExpertModal.vue";
|
import BlackjackExpertModal from "../../components/BlackjackExpertModal.vue";
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
|
|||||||
Reference in New Issue
Block a user