fix: 🧩 修复bug
This commit is contained in:
47
index.html
47
index.html
@@ -103,51 +103,6 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script type="module" src="/src/main.ts"></script>
|
<script type="module" src="/src/main.ts"></script>
|
||||||
<script>
|
<script></script>
|
||||||
// let gwUser = JSON.parse(localStorage.getItem("gw-user"));
|
|
||||||
|
|
||||||
// if (gwUser) {
|
|
||||||
// const { phpToken, refreshToken } = gwUser;
|
|
||||||
// function offline() {
|
|
||||||
// const pathurl = localStorage.getItem("baseUrl") + `uc/offline`;
|
|
||||||
// fetch(pathurl, {
|
|
||||||
// method: "POST",
|
|
||||||
// credentials: "include",
|
|
||||||
// keepalive: true,
|
|
||||||
// headers: {
|
|
||||||
// Authorization: phpToken,
|
|
||||||
// "Refresh-Authorization": refreshToken
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// window.onbeforeunload = function (e) {
|
|
||||||
// offline();
|
|
||||||
// };
|
|
||||||
// var ua = window.navigator.userAgent.toLowerCase();
|
|
||||||
// var rkn =
|
|
||||||
// /\b(opera|chrome|webkit|safari|msie|firefox|gecko|qqbrowser|edg)\b(\s*(version|rv:|\/)*(\d+(\.\d+)*))?/g;
|
|
||||||
// window.addEventListener("mouseover", function () {
|
|
||||||
// window.removeEventListener("beforeunload", offline, true);
|
|
||||||
// ua.replace(rkn, function (match, type, all, rv, version) {
|
|
||||||
// if (type == "chrome" && parseInt(version) <= 86) {
|
|
||||||
// window.removeEventListener("unload", offline, true);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
// window.addEventListener("mouseout", function () {
|
|
||||||
// window.addEventListener("beforeunload", offline, true);
|
|
||||||
// ua.replace(rkn, function (match, type, all, rv, version) {
|
|
||||||
// if (type == "qqbrowser" || type == "edg" || (type == "chrome" && parseInt(version) <= 86)) {
|
|
||||||
// window.addEventListener("unload", offline, true);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
// if (window.location.pathnam !== "/login") {
|
|
||||||
// window.removeEventListener("beforeunload", offline);
|
|
||||||
// window.removeEventListener("unload", offline);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -37,6 +37,6 @@ export const getBannerListExportApi = (params: any) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
//分类
|
//分类
|
||||||
export const getBannerClassListApi = (params: any) => {
|
export const getBannerClassListApi = (params?: any) => {
|
||||||
return http.get<any>(`/banner/list`, params); //v1/banner/list
|
return http.get<any>(`/banner/list`, params); //v1/banner/list
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,6 +26,6 @@ export const getCategorySortApi = (params: any) => {
|
|||||||
return http.post<any>(`${ATT_C}/sort/${params.id}`, { sort: params.sort });
|
return http.post<any>(`${ATT_C}/sort/${params.id}`, { sort: params.sort });
|
||||||
};
|
};
|
||||||
//下载分类下拉列表
|
//下载分类下拉列表
|
||||||
export const getCategorysApi = (params: any) => {
|
export const getCategorysApi = (params?: any) => {
|
||||||
return http.get<any>(`/attachment/categorys`, params);
|
return http.get<any>(`/attachment/categorys`, params);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export const getProductListSortApi = (params: any) => {
|
|||||||
const { id, sort } = params;
|
const { id, sort } = params;
|
||||||
return http.post<any>(`${PRODUCT}/sort/${id}`, { sort });
|
return http.post<any>(`${PRODUCT}/sort/${id}`, { sort });
|
||||||
};
|
};
|
||||||
// getProductCategoryListApi
|
// 产品分类
|
||||||
export const getProductCategoryListApi = () => {
|
export const getProductCategoryListApi = (params?: any) => {
|
||||||
return http.get<any>(`/product/categorys`);
|
return http.get<any>(`/product/categorys`, params);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import http from "@/api";
|
import http from "@/api";
|
||||||
const VIDEO_CATEGORY = `video/category`;
|
const VIDEO_CATEGORY = `video/category`;
|
||||||
// 视频分类分页列表
|
// 视频分类分页列表
|
||||||
export const getVideoClassListApi = (params: any) => {
|
export const getVideoClassListApi = (params?: any) => {
|
||||||
return http.get<any>(`${VIDEO_CATEGORY}/index`, params);
|
return http.get<any>(`${VIDEO_CATEGORY}/index`, params);
|
||||||
};
|
};
|
||||||
//视频分类详情
|
//视频分类详情
|
||||||
|
|||||||
@@ -27,6 +27,6 @@ export const getVideoListExportApi = (params: any) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
//视频分类
|
//视频分类
|
||||||
export const getVideoClassListApi = (params: any) => {
|
export const getVideoClassListApi = (params?: any) => {
|
||||||
return http.get<any>(`/video/categorys`, params);
|
return http.get<any>(`/video/categorys`, params);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -124,7 +124,13 @@
|
|||||||
<UploadVideo width="440px" v-model:video-url="_ruleForm[`${item.prop}`]"> </UploadVideo>
|
<UploadVideo width="440px" v-model:video-url="_ruleForm[`${item.prop}`]"> </UploadVideo>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="item.type === 'select'">
|
<template v-if="item.type === 'select'">
|
||||||
<el-select style="width: 240px" v-model="_ruleForm[`${item.prop}`]" :placeholder="item.placeholder" clearable>
|
<el-select
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="_ruleForm[`${item.prop}`]"
|
||||||
|
:placeholder="item.placeholder"
|
||||||
|
clearable
|
||||||
|
@change="handleSelectChange(_ruleForm[`${item.prop}`])"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
:label="option.label"
|
:label="option.label"
|
||||||
:value="option.value"
|
:value="option.value"
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export const EDIT_FORM_DATA: FormItem[] = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
prop: "category_id",
|
prop: "category_id1",
|
||||||
placeholder: "请选择",
|
placeholder: "请选择",
|
||||||
type: "select",
|
type: "select",
|
||||||
label: "文章分类: ",
|
label: "文章分类: ",
|
||||||
@@ -59,7 +59,7 @@ export const EDIT_FORM_DATA: FormItem[] = [
|
|||||||
// prop: "is_show1",
|
// prop: "is_show1",
|
||||||
// placeholder: "",
|
// placeholder: "",
|
||||||
// type: "radio",
|
// type: "radio",
|
||||||
// label: "是否启动: ",
|
// label: "是否启用: ",
|
||||||
// options: [
|
// options: [
|
||||||
// {
|
// {
|
||||||
// label: "是",
|
// label: "是",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const RULES = {
|
export const RULES = {
|
||||||
title: [{ required: true, message: "文章名称不能为空 ! ", trigger: "blur" }],
|
title: [{ required: true, message: "文章名称不能为空 ! ", trigger: "blur" }],
|
||||||
category_id: [{ required: true, message: "文章分类不能为空 ! ", trigger: "change" }],
|
category_id1: [{ required: true, message: "文章分类不能为空 ! ", trigger: "change" }],
|
||||||
sort: [{ required: true, message: "文章排序不能为空 ! ", trigger: "blur" }]
|
sort: [{ required: true, message: "文章排序不能为空 ! ", trigger: "blur" }]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
:formData="dataStore.editFormData"
|
:formData="dataStore.editFormData"
|
||||||
:rules="dataStore.rules"
|
:rules="dataStore.rules"
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
|
@handleSelectChangeEmits="handleSelectChangeEmits"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
@@ -80,9 +81,19 @@ const getArticleListDetails = async () => {
|
|||||||
const { data } = result;
|
const { data } = result;
|
||||||
dataStore.editRuleForm = data;
|
dataStore.editRuleForm = data;
|
||||||
console.log(data);
|
console.log(data);
|
||||||
|
|
||||||
|
let is = dataStore.editFormData[1].options.some((item: any) => {
|
||||||
|
console.log(item.id);
|
||||||
|
console.log(dataStore.editRuleForm.category_id);
|
||||||
|
return item.value == dataStore.editRuleForm.category_id;
|
||||||
|
});
|
||||||
|
dataStore.editRuleForm.category_id1 = is ? dataStore.editRuleForm.category_id : dataStore.editRuleForm.category_name;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const handleSelectChangeEmits = (value: any) => {
|
||||||
|
console.log(value, "========value=========");
|
||||||
|
dataStore.editRuleForm.category_id = value.id;
|
||||||
|
};
|
||||||
const convertDateFormat = (dateString: any) => {
|
const convertDateFormat = (dateString: any) => {
|
||||||
const date = new Date(dateString);
|
const date = new Date(dateString);
|
||||||
const year = date.getFullYear();
|
const year = date.getFullYear();
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ const dataStore = reactive<any>({
|
|||||||
|
|
||||||
//文章分类(搜索条件)
|
//文章分类(搜索条件)
|
||||||
const getArticleClassData = async () => {
|
const getArticleClassData = async () => {
|
||||||
const result = await getArticleClassDataApi({ is_show: 0 });
|
const result = await getArticleClassDataApi();
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
const { data } = result;
|
const { data } = result;
|
||||||
dataStore.formData[1].options = useSearchInfoArray(data);
|
dataStore.formData[1].options = useSearchInfoArray(data);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export const EDIT_FORM_DATA: FormItem[] = [
|
|||||||
prop: "status",
|
prop: "status",
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
type: "radio",
|
type: "radio",
|
||||||
label: "是否启动: ",
|
label: "是否启用: ",
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: "是",
|
label: "是",
|
||||||
@@ -141,7 +141,7 @@ export const EDIT_FORM_DATA1: FormItem[] = [
|
|||||||
prop: "status",
|
prop: "status",
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
type: "radio",
|
type: "radio",
|
||||||
label: "是否启动: ",
|
label: "是否启用: ",
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: "是",
|
label: "是",
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ const setImgOrVideo = () => {
|
|||||||
} else {
|
} else {
|
||||||
dataStore.editFormData = EDIT_FORM_DATA1;
|
dataStore.editFormData = EDIT_FORM_DATA1;
|
||||||
}
|
}
|
||||||
|
getBannerClassEditList();
|
||||||
};
|
};
|
||||||
// 详情
|
// 详情
|
||||||
const getBannerRead = async (id: any) => {
|
const getBannerRead = async (id: any) => {
|
||||||
@@ -204,6 +205,7 @@ const getBannerRead = async (id: any) => {
|
|||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
dataStore.editRuleForm = result?.data;
|
dataStore.editRuleForm = result?.data;
|
||||||
setImgOrVideo();
|
setImgOrVideo();
|
||||||
|
|
||||||
if (dataStore.editRuleForm.link && dataStore.editRuleForm.link_to) {
|
if (dataStore.editRuleForm.link && dataStore.editRuleForm.link_to) {
|
||||||
let { id, name, link } = dataStore.editRuleForm.link_echo_data;
|
let { id, name, link } = dataStore.editRuleForm.link_echo_data;
|
||||||
let obj: any = {
|
let obj: any = {
|
||||||
@@ -252,7 +254,7 @@ const getBannerUp = async () => {
|
|||||||
|
|
||||||
// 分类
|
// 分类
|
||||||
const getBannerClassList = async () => {
|
const getBannerClassList = async () => {
|
||||||
const result = await getBannerClassListApi({ is_show: 0 });
|
const result = await getBannerClassListApi();
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let arr: any = [];
|
let arr: any = [];
|
||||||
result?.data?.forEach((item: any) => {
|
result?.data?.forEach((item: any) => {
|
||||||
@@ -265,16 +267,16 @@ const getBannerClassList = async () => {
|
|||||||
getBannerClassList();
|
getBannerClassList();
|
||||||
//详情里的分类
|
//详情里的分类
|
||||||
const getBannerClassEditList = async () => {
|
const getBannerClassEditList = async () => {
|
||||||
const result = await getBannerClassListApi({ is_show: 1 });
|
const result = await getBannerClassListApi();
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let arr: any = [];
|
let arr: any = [];
|
||||||
result?.data?.forEach((item: any) => {
|
result?.data?.forEach((item: any) => {
|
||||||
arr.push({ value: item.id, label: item.name });
|
arr.push({ value: item.id, label: item.name });
|
||||||
});
|
});
|
||||||
dataStore.editFormData[4].options = arr;
|
dataStore.editFormData[5].options = arr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
getBannerClassEditList();
|
|
||||||
// 新增 getBannerListSave
|
// 新增 getBannerListSave
|
||||||
const getBannerListSave = async () => {
|
const getBannerListSave = async () => {
|
||||||
const result = await getBannerListSaveApi(dataStore.editRuleForm);
|
const result = await getBannerListSaveApi(dataStore.editRuleForm);
|
||||||
@@ -329,6 +331,7 @@ const handleResetClick = () => {
|
|||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
dataStore.title = "添加Banner";
|
dataStore.title = "添加Banner";
|
||||||
dataStore.visible = true;
|
dataStore.visible = true;
|
||||||
|
getBannerClassEditList();
|
||||||
};
|
};
|
||||||
// 抽屉关闭前的钩子
|
// 抽屉关闭前的钩子
|
||||||
const handleBeforeClone = () => {
|
const handleBeforeClone = () => {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export const EDIT_FORM_DATA: FormItem[] = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
prop: "category_id",
|
prop: "category_id1",
|
||||||
placeholder: "请选择",
|
placeholder: "请选择",
|
||||||
type: "select",
|
type: "select",
|
||||||
label: "下载分类: ",
|
label: "下载分类: ",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const RULES = {
|
export const RULES = {
|
||||||
name: [{ required: true, message: "下载名称不能为空 ! ", trigger: "blur" }],
|
name: [{ required: true, message: "下载名称不能为空 ! ", trigger: "blur" }],
|
||||||
category_id: [{ required: true, message: "下载分类不能为空 ! ", trigger: "blur" }],
|
category_id1: [{ required: true, message: "下载分类不能为空 ! ", trigger: "blur" }],
|
||||||
sort: [{ required: true, message: "下载排序不能为空 ! ", trigger: "blur" }]
|
sort: [{ required: true, message: "下载排序不能为空 ! ", trigger: "blur" }]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
:formData="dataStore.editFormData"
|
:formData="dataStore.editFormData"
|
||||||
:rules="dataStore.rules"
|
:rules="dataStore.rules"
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
|
@handleSelectChangeEmits="handleSelectChangeEmits"
|
||||||
>
|
>
|
||||||
<el-button type="primary" size="small" style="margin-bottom: 10px" @click="handleEditAdd">添加行</el-button>
|
<el-button type="primary" size="small" style="margin-bottom: 10px" @click="handleEditAdd">添加行</el-button>
|
||||||
<FormTable :columns="dataStore.editColumns" :tableData="dataStore.editTableData" :height="200">
|
<FormTable :columns="dataStore.editColumns" :tableData="dataStore.editTableData" :height="200">
|
||||||
@@ -228,10 +229,20 @@ const getAttachmentRead = async () => {
|
|||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
dataStore.editRuleForm = result?.data;
|
dataStore.editRuleForm = result?.data;
|
||||||
dataStore.editTableData = result?.data.attach;
|
dataStore.editTableData = result?.data.attach;
|
||||||
|
|
||||||
|
let is = dataStore.editFormData[1].options.some((item: any) => {
|
||||||
|
console.log(item.id);
|
||||||
|
console.log(dataStore.editRuleForm.category_id);
|
||||||
|
return item.value == dataStore.editRuleForm.category_id;
|
||||||
|
});
|
||||||
|
dataStore.editRuleForm.category_id1 = is ? dataStore.editRuleForm.category_id : dataStore.editRuleForm.category_name;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
getAttachmentRead();
|
getAttachmentRead();
|
||||||
|
const handleSelectChangeEmits = (value: any) => {
|
||||||
|
console.log(value, "========value=========");
|
||||||
|
dataStore.editRuleForm.category_id = value.id;
|
||||||
|
};
|
||||||
//分类
|
//分类
|
||||||
const getCategorys = async () => {
|
const getCategorys = async () => {
|
||||||
const result = await getCategorysApi({ is_show: 1 });
|
const result = await getCategorysApi({ is_show: 1 });
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ const handleInput = (row: any) => {
|
|||||||
row.sort = integerRexg(row.sort);
|
row.sort = integerRexg(row.sort);
|
||||||
};
|
};
|
||||||
const getCategorys = async () => {
|
const getCategorys = async () => {
|
||||||
const result = await getCategorysApi({ is_show: 0 });
|
const result = await getCategorysApi();
|
||||||
|
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let arr: any[] = [];
|
let arr: any[] = [];
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ const dataStore = reactive<any>({
|
|||||||
});
|
});
|
||||||
//分类列表
|
//分类列表
|
||||||
const getCategorys = async () => {
|
const getCategorys = async () => {
|
||||||
const result = await getCategorysApi();
|
const result = await getCategorysApi({ is_show: 0 });
|
||||||
|
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let arr: any[] = [];
|
let arr: any[] = [];
|
||||||
|
|||||||
@@ -16,11 +16,12 @@
|
|||||||
|
|
||||||
<el-tree-select
|
<el-tree-select
|
||||||
clearable
|
clearable
|
||||||
v-model="_ruleFormParam.category_id"
|
v-model="_ruleFormParam.category_id1"
|
||||||
:data="options"
|
:data="options"
|
||||||
:render-after-expand="false"
|
:render-after-expand="false"
|
||||||
show-checkbox
|
show-checkbox
|
||||||
check-strictly
|
check-strictly
|
||||||
|
@change="handleTreeChange()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@@ -59,12 +60,12 @@
|
|||||||
<el-radio :value="0" :label="0">否</el-radio>
|
<el-radio :value="0" :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否启用" style="width: 440px">
|
<!-- <el-form-item label="是否启用" style="width: 440px">
|
||||||
<el-radio-group v-model="_ruleFormParam.status">
|
<el-radio-group v-model="_ruleFormParam.status">
|
||||||
<el-radio :value="1" :label="1">是</el-radio>
|
<el-radio :value="1" :label="1">是</el-radio>
|
||||||
<el-radio :value="0" :label="0">否</el-radio>
|
<el-radio :value="0" :label="0">否</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
<el-form-item label="SEO标题">
|
<el-form-item label="SEO标题">
|
||||||
<el-input v-model="_ruleFormParam.seo_title" style="width: 440px" />
|
<el-input v-model="_ruleFormParam.seo_title" style="width: 440px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -95,6 +96,11 @@ const reset = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let _ruleFormParam: any = computed(() => props.data);
|
let _ruleFormParam: any = computed(() => props.data);
|
||||||
|
|
||||||
|
const handleTreeChange = () => {
|
||||||
|
_ruleFormParam.value.category_id = _ruleFormParam.value.category_id1;
|
||||||
|
};
|
||||||
|
|
||||||
// 暴露给父组件的参数和方法(外部需要什么,都可以从这里暴露出去)
|
// 暴露给父组件的参数和方法(外部需要什么,都可以从这里暴露出去)
|
||||||
defineExpose({
|
defineExpose({
|
||||||
ruleForm: _ruleFormParam,
|
ruleForm: _ruleFormParam,
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ export const BASIC_INFO_FORM_DATA: FormItem[] = [
|
|||||||
prop: "is_show1",
|
prop: "is_show1",
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
type: "radio",
|
type: "radio",
|
||||||
label: "是否启动: ",
|
label: "是否启用: ",
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
label: "是",
|
label: "是",
|
||||||
|
|||||||
@@ -43,8 +43,13 @@
|
|||||||
<script setup lang="ts" name="productEditIndex">
|
<script setup lang="ts" name="productEditIndex">
|
||||||
import { ref, reactive } from "vue";
|
import { ref, reactive } from "vue";
|
||||||
//getProductAttrsApi
|
//getProductAttrsApi
|
||||||
import { getProductDetailsApi, getProductListApi, getProductAttrsListApi } from "@/api/modules/productList";
|
import {
|
||||||
import { getProductCategoryListApi } from "@/api/modules/productClass";
|
getProductDetailsApi,
|
||||||
|
getProductListApi,
|
||||||
|
getProductAttrsListApi,
|
||||||
|
getProductCategoryListApi
|
||||||
|
} from "@/api/modules/productList";
|
||||||
|
// import { getProductCategoryListApi } from "@/api/modules/productClass";
|
||||||
import { RELATED_INFO_COLUMNS } from "./constant/related";
|
import { RELATED_INFO_COLUMNS } from "./constant/related";
|
||||||
import { cloneDeep, debounce } from "lodash-es";
|
import { cloneDeep, debounce } from "lodash-es";
|
||||||
import { messageBox } from "@/utils/messageBox";
|
import { messageBox } from "@/utils/messageBox";
|
||||||
@@ -123,7 +128,7 @@ const getProductList = async (query: any) => {
|
|||||||
|
|
||||||
//产品分类(后端大佬说直接掉列表接口)
|
//产品分类(后端大佬说直接掉列表接口)
|
||||||
const getProductCategoryList = async () => {
|
const getProductCategoryList = async () => {
|
||||||
const result = await getProductCategoryListApi({ page: 1, size: 500 });
|
const result = await getProductCategoryListApi({ is_show: 1 });
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let dataClone: any = cloneDeep(result?.data);
|
let dataClone: any = cloneDeep(result?.data);
|
||||||
dataStore.options = addLabelValue(dataClone);
|
dataStore.options = addLabelValue(dataClone);
|
||||||
|
|||||||
@@ -1,13 +1,33 @@
|
|||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
|
|
||||||
|
const hasIdRecursive = (data: any, targetId: any) => {
|
||||||
|
for (let i = 0; i < data.length; i++) {
|
||||||
|
const item = data[i];
|
||||||
|
if (item.id === targetId) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (item.children && item.children.length > 0) {
|
||||||
|
if (hasIdRecursive(item.children, targetId)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
//将参数分离
|
//将参数分离
|
||||||
export const initDetailParams = (dataStore: any, data: any) => {
|
export const initDetailParams = (dataStore: any, data: any) => {
|
||||||
|
let is = hasIdRecursive(dataStore.options, data.category_id);
|
||||||
//基本信息
|
//基本信息
|
||||||
dataStore.basicInfoRuleForm = cloneDeep({
|
dataStore.basicInfoRuleForm = cloneDeep({
|
||||||
name: data.name,
|
name: data.name,
|
||||||
short_name: data.short_name,
|
short_name: data.short_name,
|
||||||
spu: data.spu,
|
spu: data.spu,
|
||||||
|
is: is,
|
||||||
|
category_id1: is ? data.category_id : data.category_name,
|
||||||
category_id: data.category_id,
|
category_id: data.category_id,
|
||||||
params: data.category_id,
|
category_name: data.category_name,
|
||||||
|
params: data.params,
|
||||||
sort: data.sort,
|
sort: data.sort,
|
||||||
is_show: data.is_show,
|
is_show: data.is_show,
|
||||||
is_new: data.is_new,
|
is_new: data.is_new,
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export const EDIT_FORM_DATA: FormItem[] = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
prop: "category_id",
|
prop: "category_id1",
|
||||||
placeholder: "请选择",
|
placeholder: "请选择",
|
||||||
type: "select",
|
type: "select",
|
||||||
label: "视频分类: ",
|
label: "视频分类: ",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export const RULES = {
|
export const RULES = {
|
||||||
name: [{ required: true, message: "视频名称不能为空 ! ", trigger: "blur" }],
|
name: [{ required: true, message: "视频名称不能为空 ! ", trigger: "blur" }],
|
||||||
category_id: [{ required: true, message: "视频分类不能为空 ! ", trigger: "blur" }],
|
category_id1: [{ required: true, message: "视频分类不能为空 ! ", trigger: "blur" }],
|
||||||
sort: [{ required: true, message: "视频排序不能为空 ! ", trigger: "blur" }]
|
sort: [{ required: true, message: "视频排序不能为空 ! ", trigger: "blur" }]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
:formData="dataStore.editFormData"
|
:formData="dataStore.editFormData"
|
||||||
:rules="dataStore.rules"
|
:rules="dataStore.rules"
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
|
@handleSelectChangeEmits="handleSelectChangeEmits"
|
||||||
>
|
>
|
||||||
</rulesForm>
|
</rulesForm>
|
||||||
</div>
|
</div>
|
||||||
@@ -125,7 +126,7 @@ const handleResetClick = () => {
|
|||||||
|
|
||||||
//视频分类接口
|
//视频分类接口
|
||||||
const getVideoClassList = async () => {
|
const getVideoClassList = async () => {
|
||||||
const result = await getVideoClassListApi({ is_show: 0 });
|
const result = await getVideoClassListApi();
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
let arr: any[] = [];
|
let arr: any[] = [];
|
||||||
if (result?.data?.length) {
|
if (result?.data?.length) {
|
||||||
@@ -136,7 +137,7 @@ const getVideoClassList = async () => {
|
|||||||
};
|
};
|
||||||
arr.push(obj);
|
arr.push(obj);
|
||||||
});
|
});
|
||||||
dataStore.formData[1].options = dataStore.editFormData[1].options = arr;
|
dataStore.formData[1].options = arr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -176,8 +177,20 @@ const getVideoRead = async (id: any) => {
|
|||||||
const result = await getVideoReadApi(id);
|
const result = await getVideoReadApi(id);
|
||||||
if (result?.code === 0) {
|
if (result?.code === 0) {
|
||||||
dataStore.editRuleForm = result?.data;
|
dataStore.editRuleForm = result?.data;
|
||||||
|
let is = dataStore.editFormData[1].options.some((item: any) => {
|
||||||
|
console.log(item.id);
|
||||||
|
console.log(dataStore.editRuleForm.category_id);
|
||||||
|
return item.value == dataStore.editRuleForm.category_id;
|
||||||
|
});
|
||||||
|
dataStore.editRuleForm.category_id1 = is ? dataStore.editRuleForm.category_id : dataStore.editRuleForm.category_name;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleSelectChangeEmits = (value: any) => {
|
||||||
|
console.log(value, "========value=========");
|
||||||
|
dataStore.editRuleForm.category_id = value.id;
|
||||||
|
};
|
||||||
|
|
||||||
//保存
|
//保存
|
||||||
const getVideoSave = async () => {
|
const getVideoSave = async () => {
|
||||||
const result = await getVideoSaveApi(dataStore.editRuleForm);
|
const result = await getVideoSaveApi(dataStore.editRuleForm);
|
||||||
|
|||||||
Reference in New Issue
Block a user