update
This commit is contained in:
@@ -13,7 +13,8 @@ const emits = defineEmits(['search']);
|
||||
const {config, title} = defineProps({
|
||||
config: {
|
||||
type: Array,
|
||||
default: []
|
||||
default: [],
|
||||
required: true,
|
||||
},
|
||||
title: {
|
||||
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>
|
||||
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>
|
||||
|
||||
<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>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -1,10 +1,191 @@
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -4,7 +4,7 @@ import {reactive} from "vue";
|
||||
import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||
import Api from "../../../../api/index.js";
|
||||
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";
|
||||
|
||||
const columns = [
|
||||
|
||||
Reference in New Issue
Block a user