From 0e7d1915800f537124ab781d54e461df47556c01 Mon Sep 17 00:00:00 2001 From: "2090205686@qq.com" Date: Thu, 12 Jun 2025 13:37:28 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/goods/goodsManage/addGoods.vue | 21 ++++++++++++++++++++- src/views/goods/goodsManage/editGoods.vue | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/views/goods/goodsManage/addGoods.vue b/src/views/goods/goodsManage/addGoods.vue index df0b064..3bc0e19 100644 --- a/src/views/goods/goodsManage/addGoods.vue +++ b/src/views/goods/goodsManage/addGoods.vue @@ -54,7 +54,7 @@
- + @@ -232,6 +232,7 @@ const formInline = reactive({ traceCode: "", //溯源码 specStyle: "1",//规格样式 1单规格 2多规格 + goodSpecs: "", salePrice: 1,//销售价格-单规格 stock: 1,//库存数量-单规格 netContent: 1,//净含量-单规格 @@ -324,6 +325,24 @@ const rules = reactive({ specStyle: [ { required: true, message: '请选择规格样式', trigger: 'change' } ], + goodSpecs: formInline.specStyle == '1' ? [ + { + required: true, + message: '请输入规格名称', + trigger: ['blur', 'change'] + }, + { + validator: (rule, value, callback) => { + console.log(value); + if (value == "" || value.trim() === "" ) { + callback(new Error('请输入规格名称')) + } else { + callback() + } + }, + trigger: ['blur', 'change'] + }, + ] : [], salePrice: formInline.specStyle == '1' ? [ { validator: (rule, value, callback) => { diff --git a/src/views/goods/goodsManage/editGoods.vue b/src/views/goods/goodsManage/editGoods.vue index e629540..644dba4 100644 --- a/src/views/goods/goodsManage/editGoods.vue +++ b/src/views/goods/goodsManage/editGoods.vue @@ -235,6 +235,7 @@ const formInline = reactive({ traceCode: "", //溯源码 specStyle: "1",//规格样式 1单规格 2多规格 + goodSpecs: "", salePrice: 1,//销售价格-单规格 stock: 1,//库存数量-单规格 netContent: 1,//净含量-单规格 @@ -327,6 +328,24 @@ const rules = reactive({ specStyle: [ { required: true, message: '请选择规格样式', trigger: 'change' } ], + goodSpecs: formInline.specStyle == '1' ? [ + { + required: true, + message: '请输入规格名称', + trigger: ['blur', 'change'] + }, + { + validator: (rule, value, callback) => { + console.log(value); + if (value == "" || value.trim() === "" ) { + callback(new Error('请输入规格名称')) + } else { + callback() + } + }, + trigger: ['blur', 'change'] + }, + ] : [], salePrice: formInline.specStyle == '1' ? [ { validator: (rule, value, callback) => { From 9ede2cb6d977650f84d0915a72fa9f39384f7bcb Mon Sep 17 00:00:00 2001 From: "2090205686@qq.com" Date: Thu, 12 Jun 2025 14:25:35 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/goods/goodsManage/addGoods.vue | 3 +++ src/views/goods/goodsManage/seeDetails.vue | 16 +++++++++++----- src/views/goods/goodsReview/auditGoods.vue | 6 +++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/views/goods/goodsManage/addGoods.vue b/src/views/goods/goodsManage/addGoods.vue index 3bc0e19..ef4d629 100644 --- a/src/views/goods/goodsManage/addGoods.vue +++ b/src/views/goods/goodsManage/addGoods.vue @@ -219,6 +219,9 @@ import { getRegion } from "@/api/common"; import { ElMessage } from "element-plus"; import areaList from "./areaList"; +const route = useRoute() +const router = useRouter() + const formRef = ref(null) const formInline = reactive({ goodName: "", diff --git a/src/views/goods/goodsManage/seeDetails.vue b/src/views/goods/goodsManage/seeDetails.vue index 184bdd2..d991dc2 100644 --- a/src/views/goods/goodsManage/seeDetails.vue +++ b/src/views/goods/goodsManage/seeDetails.vue @@ -43,7 +43,7 @@
- +
@@ -88,9 +88,9 @@
- +
@@ -223,6 +223,7 @@ import { getRegion } from "@/api/common"; import { ElMessage } from "element-plus"; import areaList from "./areaList"; import useOperateStore from "@/store/modules/operate"; +import { computed } from "vue"; const operateStore = useOperateStore(); const route = useRoute() @@ -426,6 +427,7 @@ const rules = reactive({ { required: true, message: '请输入详细地址', trigger: 'blur' } ], }) + const addSpecs = () => { formInline.netWeight.push({ goodSpecs: "", @@ -613,15 +615,19 @@ const getGoodsInfo = async (goodId) => { } }; +let goodurls = computed(() => { + return formInline.goodUrl.split(",") +}) + watch(() => route.query, (newVal) => { - console.log("watch商品id:", newVal.goodId); + // console.log("watch商品id:", newVal.goodId); if (newVal.goodId) { getGoodsInfo(newVal.goodId); } }) onMounted(async () => { const { edit, goodId } = route.query; - console.log("onMounted商品id:", goodId); + // console.log("onMounted商品id:", goodId); getActiveInfo(); await getGoodTypeList(); getArea(); diff --git a/src/views/goods/goodsReview/auditGoods.vue b/src/views/goods/goodsReview/auditGoods.vue index 7b5b0b9..a9f79ca 100644 --- a/src/views/goods/goodsReview/auditGoods.vue +++ b/src/views/goods/goodsReview/auditGoods.vue @@ -43,7 +43,7 @@
- +
@@ -653,6 +653,10 @@ const getGoodsInfo = async (goodId) => { } }; +let goodurls = computed(() => { + return formInline.goodUrl.split(",") +}) + watch(() => route.query, (newVal) => { console.log("watch商品id:", newVal.goodId); if (newVal.goodId) { From c2f77d2f351467e2adbeab482ae4d1f3a02803c1 Mon Sep 17 00:00:00 2001 From: 13713575202 <1345916905@qq.com> Date: Thu, 12 Jun 2025 14:52:03 +0800 Subject: [PATCH 3/5] xiabin --- src/router/index.js | 14 +- src/views/trade/dataBoard.vue | 416 ++++++++++++++++++++++++++++++++++ 2 files changed, 429 insertions(+), 1 deletion(-) create mode 100644 src/views/trade/dataBoard.vue diff --git a/src/router/index.js b/src/router/index.js index 327f1da..b45b3df 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -311,6 +311,18 @@ export const constantRoutes = [ title: "电商交易", }, children: [ + { + path: 'trade/dataBoard', + component: () => import('@/views/trade/dataBoard'), + name: 'dataBoard', + hidden: false, + meta: { + title: "电商数据看板", + icon: "", + noCache: false, + link: null, + }, + }, { path: 'trade/agriculturalinputstrading', component: () => import('@/views/trade/agriculturalinputstrading'), @@ -361,7 +373,7 @@ export const constantRoutes = [ }, ], }, -{ + { path: '/brand', name: "brand", component: Layout, diff --git a/src/views/trade/dataBoard.vue b/src/views/trade/dataBoard.vue new file mode 100644 index 0000000..6fd0a46 --- /dev/null +++ b/src/views/trade/dataBoard.vue @@ -0,0 +1,416 @@ + + + From c3ceba1c253f1342ad8462eb6ab0d448d1339b1c Mon Sep 17 00:00:00 2001 From: "2090205686@qq.com" Date: Thu, 12 Jun 2025 15:04:52 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=95=86=E5=93=81=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/goods/goodsCategory/index.vue | 58 ++++++++++++------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/src/views/goods/goodsCategory/index.vue b/src/views/goods/goodsCategory/index.vue index ee1653b..7dcd167 100644 --- a/src/views/goods/goodsCategory/index.vue +++ b/src/views/goods/goodsCategory/index.vue @@ -147,7 +147,6 @@ const onSubmit = () => { ElMessage.warning("请选择开始日期!"); return; } - console.log(formInline); loadData(); }; const resetForm = () => { @@ -268,12 +267,24 @@ const enableAndDisable = async (row, num) => { tableLoading.value = false; } }; -// 编辑操作 -const handleEdit = (row) => { - nowClickRow.value = row; - console.log("要编辑的行:", row); - dialogTitle.value = "编辑分类"; +// 添加分类 +const addCategory = () => { + dialogTitle.value = "添加分类"; + getGoodTypeList(); + Object.assign(dialogForm, { // 保持响应性,手动清空字段 + id: "", + type: 1, + name: "", + level: "", + parentId: "", + status: "1", + }); dialogFormVisible.value = true; +}; +// 编辑操作 +const handleEdit = async (row) => { + nowClickRow.value = row; + dialogTitle.value = "编辑分类"; getGoodTypeList(); dialogForm.id = row.id; dialogForm.type = row.type; @@ -281,15 +292,16 @@ const handleEdit = (row) => { dialogForm.level = row.level; dialogForm.parentId = row.parentId; dialogForm.status = row.status?.toString() ?? '1'; + + dialogForm.selectedNode = findNodeById(goodsOptions.value, row.parentId); + dialogFormVisible.value = true; }; // 删除操作 const handleDelete = (row) => { - console.log("要删除的行:", row); deleteGoods(row.id); }; // 批量删除 const batchDelete = () => { - console.log("要删除的行:", selectedIds.value); deleteGoods(selectedIds.value.join(",")); }; const deleteGoods = async (ids) => { @@ -371,22 +383,22 @@ const onSaveCategory = () => { try { proxy.$modal.loading("正在保存..."); let param = { ...dialogForm }; - param.level = dialogForm.selectedNode.level; - param.type = dialogForm.selectedNode.type; + param.level = dialogForm.selectedNode.level ?? ""; + param.type = dialogForm.selectedNode.type ?? ""; let response; - if (dialogTitle.value == "编辑分类") { - response = await categoryEdit(param); - } else { + if (dialogTitle.value == "添加分类") { response = await categoryAdd(param); + } else { + response = await categoryEdit(param); } proxy.$modal.closeLoading(); if (response.code == 200) { cancelDialog(); onSubmit(); - if (dialogTitle.value == "编辑分类") { - ElMessage.success("编辑成功!"); - } else { + if (dialogTitle.value == "添加分类") { ElMessage.success("添加成功!"); + } else { + ElMessage.success("编辑成功!"); } } else { ElMessage.error(response.msg); @@ -397,20 +409,6 @@ const onSaveCategory = () => { } }); }; -// 添加分类 -const addCategory = () => { - dialogTitle.value = "添加分类"; - getGoodTypeList(); - Object.assign(dialogForm, { // 保持响应性,手动清空字段 - id: "", - type: 1, - name: "", - level: "", - parentId: "", - status: "1", - }); - dialogFormVisible.value = true; -}; const cancelDialog = () => { Object.assign(dialogForm, { // 保持响应性,手动清空字段 id: "", From 85d88da9f94d8bf55f7a9033d963a876be429fa8 Mon Sep 17 00:00:00 2001 From: "2090205686@qq.com" Date: Thu, 12 Jun 2025 16:30:30 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/tableComponent.vue | 2 +- src/views/customer/customerCategory.vue | 2 +- src/views/customer/customerManage.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/tableComponent.vue b/src/components/tableComponent.vue index 7392864..7d6f66b 100644 --- a/src/components/tableComponent.vue +++ b/src/components/tableComponent.vue @@ -190,7 +190,7 @@ const props = defineProps({ // 自定义表头类名函数 headerCellClassName: { type: Function, - default: () => "", + default: () => "custom-header", }, // 自定义单元格类名函数 cellClassName: { diff --git a/src/views/customer/customerCategory.vue b/src/views/customer/customerCategory.vue index 9320a1b..6be82f2 100644 --- a/src/views/customer/customerCategory.vue +++ b/src/views/customer/customerCategory.vue @@ -233,7 +233,7 @@ const generateMockData = () => { "id|+1": 10000, nickname: () => generateFoodNickname(), //昵称 userName: "@cname", //姓名 - accountNumber: Mock.mock("@id").toString().slice(0, 10), //账号 + accountNumber: "@integer(1000000000, 9999999999)", //账号 phoneNumber: "@integer(13000000000, 18999999999)", //手机号 sex: '@pick(["男", "女"])', //性别 "userStatus|1": [0, 1], //0异常 1正常 diff --git a/src/views/customer/customerManage.vue b/src/views/customer/customerManage.vue index 597898a..1d7eebd 100644 --- a/src/views/customer/customerManage.vue +++ b/src/views/customer/customerManage.vue @@ -218,7 +218,7 @@ const generateMockData = () => { "id|+1": 10000, nickname: () => generateFoodNickname(), //昵称 userName: "@cname", //姓名 - accountNumber: Mock.mock("@id").toString().slice(0, 10), //账号 + accountNumber: "@integer(1000000000, 9999999999)", //账号 phoneNumber: "@integer(13000000000, 18999999999)", //手机号 sex: '@pick(["男", "女"])', //性别 "userStatus|1": [0, 1], //0异常 1正常