更新指定商品功能
This commit is contained in:
parent
09cb9a43df
commit
b0b1d53f8e
@ -20,6 +20,7 @@ export function apiTaskDelete(params: any) {
|
|||||||
export function apiTaskList(params: any) {
|
export function apiTaskList(params: any) {
|
||||||
return request.get({ url: '/task_scheduling_plan.task_scheduling_plan/lists', params })
|
return request.get({ url: '/task_scheduling_plan.task_scheduling_plan/lists', params })
|
||||||
}
|
}
|
||||||
|
|
||||||
//任务日程-详情
|
//任务日程-详情
|
||||||
export function apiTaskDetails(params: any) {
|
export function apiTaskDetails(params: any) {
|
||||||
return request.get({ url: '/task_scheduling_plan.task_scheduling_plan/detail', params })
|
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) {
|
export function apiTaskTypeList(params: any) {
|
||||||
return request.get({ url: '/setting.dict.dict_data/lists', params })
|
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>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</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-form-item v-if="showTarget" label="目标数" prop="extend.target">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.extend.target"
|
v-model="formData.extend.target"
|
||||||
@ -194,6 +208,12 @@
|
|||||||
:company_id="formData.company_id"
|
:company_id="formData.company_id"
|
||||||
></personnelPopup>
|
></personnelPopup>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog v-model="showDialogCommodity">
|
||||||
|
<dialogCommodity
|
||||||
|
:type="30"
|
||||||
|
@customEvent="customEventCommodity"
|
||||||
|
></dialogCommodity>
|
||||||
|
</el-dialog>
|
||||||
</popup>
|
</popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -212,6 +232,7 @@ import type { PropType } from "vue";
|
|||||||
import { dictDataLists } from "@/api/setting/dict";
|
import { dictDataLists } from "@/api/setting/dict";
|
||||||
import taskMap from "./map.vue";
|
import taskMap from "./map.vue";
|
||||||
import personnelPopup from "./dialog_index_personnel.vue";
|
import personnelPopup from "./dialog_index_personnel.vue";
|
||||||
|
import dialogCommodity from "./dialog_commodity.vue";
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -273,8 +294,11 @@ const formData = reactive({
|
|||||||
extend: {
|
extend: {
|
||||||
task_role: "", // 任务角色
|
task_role: "", // 任务角色
|
||||||
target: "", //目标数量
|
target: "", //目标数量
|
||||||
|
product_id: "", //商品id
|
||||||
|
store_name: "", // 商品名字
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (route.query.id) {
|
if (route.query.id) {
|
||||||
formData.task_scheduling = route.query.id;
|
formData.task_scheduling = route.query.id;
|
||||||
}
|
}
|
||||||
@ -283,6 +307,19 @@ if (route.query.id) {
|
|||||||
// datalist.value = res.lists;
|
// 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 = [
|
const showTargetTypeList = [
|
||||||
"town_task_type_marketing_director_9",
|
"town_task_type_marketing_director_9",
|
||||||
@ -329,6 +366,19 @@ const showThree = computed(() => {
|
|||||||
return flag;
|
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>({
|
const formRules = reactive<any>({
|
||||||
title: [
|
title: [
|
||||||
@ -402,6 +452,13 @@ const formRules = reactive<any>({
|
|||||||
trigger: ["blur"],
|
trigger: ["blur"],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"extend.product_id": [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择商品",
|
||||||
|
trigger: ["blur"],
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
|
Loading…
x
Reference in New Issue
Block a user