更新指定商品功能
This commit is contained in:
parent
09cb9a43df
commit
b0b1d53f8e
@ -20,6 +20,7 @@ export function apiTaskDelete(params: any) {
|
||||
export function apiTaskList(params: any) {
|
||||
return request.get({ url: '/task_scheduling_plan.task_scheduling_plan/lists', params })
|
||||
}
|
||||
|
||||
//任务日程-详情
|
||||
export function apiTaskDetails(params: any) {
|
||||
return request.get({ url: '/task_scheduling_plan.task_scheduling_plan/detail', params })
|
||||
|
@ -29,3 +29,8 @@ export function apiTaskTemplateDetail(params: any) {
|
||||
export function apiTaskTypeList(params: any) {
|
||||
return request.get({ url: '/setting.dict.dict_data/lists', params })
|
||||
}
|
||||
|
||||
// 指定商品
|
||||
export function apiGetProductList(params: any) {
|
||||
return request.get({ url: '/task_template.task_template/getProductList', params })
|
||||
}
|
||||
|
93
src/views/task_template/dialog_commodity.vue
Normal file
93
src/views/task_template/dialog_commodity.vue
Normal file
@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-form class="mb-[-16px]" :model="queryParams" inline>
|
||||
<el-form-item label="商品名称" prop="company_name">
|
||||
<el-input
|
||||
class="w-[280px]"
|
||||
v-model="queryParams.keyword"
|
||||
clearable
|
||||
placeholder="请输入商品名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品编号" prop="company_type">
|
||||
<el-input
|
||||
class="w-[280px]"
|
||||
v-model="queryParams.no"
|
||||
clearable
|
||||
placeholder="商品编号"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
|
||||
<div class="mt-4">
|
||||
<el-table :data="pager.lists" @cell-click="handleCurrentChange">
|
||||
<el-table-column label="ID" property="product_id" />
|
||||
<el-table-column label="图片" property="image">
|
||||
<template #default="{ row }">
|
||||
<el-image
|
||||
:src="row.image"
|
||||
style="width: 80px; height: 80px"
|
||||
fit="cover"
|
||||
></el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品名称" property="store_name" />
|
||||
<el-table-column label="价格" property="price" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" :pageSizes="[10]" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="companyLists">
|
||||
import { usePaging } from "@/hooks/usePaging";
|
||||
import { useDictData } from "@/hooks/useDictOptions";
|
||||
import { apiGetProductList } from "@/api/task_template";
|
||||
import { defineEmits } from "vue";
|
||||
|
||||
// 当前类型
|
||||
const props = defineProps({
|
||||
type: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
companyTypeList: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return [];
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// 查询条件
|
||||
const queryParams = reactive({
|
||||
keyword: "",
|
||||
no: "",
|
||||
});
|
||||
|
||||
// 选中数据
|
||||
const emits = defineEmits(["customEvent"]);
|
||||
|
||||
// 选中数据子父传递
|
||||
const handleCurrentChange = (value: any) => {
|
||||
emits("customEvent", value);
|
||||
};
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: apiGetProductList,
|
||||
params: queryParams,
|
||||
size: 10,
|
||||
});
|
||||
|
||||
getLists();
|
||||
</script>
|
@ -76,6 +76,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="showCommodity"
|
||||
label="商品"
|
||||
prop="extend.product_id"
|
||||
>
|
||||
<el-input
|
||||
readonly
|
||||
:value="formData.extend.store_name"
|
||||
clearable
|
||||
placeholder="请选择商品"
|
||||
@click="openCommodity"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showTarget" label="目标数" prop="extend.target">
|
||||
<el-input
|
||||
v-model="formData.extend.target"
|
||||
@ -194,6 +208,12 @@
|
||||
:company_id="formData.company_id"
|
||||
></personnelPopup>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="showDialogCommodity">
|
||||
<dialogCommodity
|
||||
:type="30"
|
||||
@customEvent="customEventCommodity"
|
||||
></dialogCommodity>
|
||||
</el-dialog>
|
||||
</popup>
|
||||
</div>
|
||||
</template>
|
||||
@ -212,6 +232,7 @@ import type { PropType } from "vue";
|
||||
import { dictDataLists } from "@/api/setting/dict";
|
||||
import taskMap from "./map.vue";
|
||||
import personnelPopup from "./dialog_index_personnel.vue";
|
||||
import dialogCommodity from "./dialog_commodity.vue";
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -273,8 +294,11 @@ const formData = reactive({
|
||||
extend: {
|
||||
task_role: "", // 任务角色
|
||||
target: "", //目标数量
|
||||
product_id: "", //商品id
|
||||
store_name: "", // 商品名字
|
||||
},
|
||||
});
|
||||
|
||||
if (route.query.id) {
|
||||
formData.task_scheduling = route.query.id;
|
||||
}
|
||||
@ -283,6 +307,19 @@ if (route.query.id) {
|
||||
// datalist.value = res.lists;
|
||||
// });
|
||||
|
||||
// 显示指定商品的任务类型
|
||||
const showCommodityTypeList = [
|
||||
"town_task_type_marketing_director_9",
|
||||
"town_task_type_marketing_director_8",
|
||||
"town_task_type_marketing_director_5",
|
||||
"town_task_type_marketing_director_4",
|
||||
];
|
||||
const showCommodity = computed(() => {
|
||||
let flag = false;
|
||||
if (showCommodityTypeList.includes(formData.type_value)) flag = true;
|
||||
return flag;
|
||||
});
|
||||
|
||||
// 显示目标数的任务类型
|
||||
const showTargetTypeList = [
|
||||
"town_task_type_marketing_director_9",
|
||||
@ -329,6 +366,19 @@ const showThree = computed(() => {
|
||||
return flag;
|
||||
});
|
||||
|
||||
// 指定商品弹窗
|
||||
const showDialogCommodity = ref(false);
|
||||
const openCommodity = () => {
|
||||
showDialogCommodity.value = true;
|
||||
};
|
||||
|
||||
const customEventCommodity = (e: any) => {
|
||||
formData.extend.product_id = e.product_id;
|
||||
formData.extend.store_name = e.store_name;
|
||||
formRef.value?.clearValidate("extend.product_id");
|
||||
showDialogCommodity.value = false;
|
||||
};
|
||||
|
||||
// 表单验证
|
||||
const formRules = reactive<any>({
|
||||
title: [
|
||||
@ -402,6 +452,13 @@ const formRules = reactive<any>({
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
"extend.product_id": [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择商品",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
// 获取详情
|
||||
|
Loading…
x
Reference in New Issue
Block a user