diff --git a/src/components/DataTable.jsx b/src/components/DataTable.jsx
index b8b66de..ae9518e 100644
--- a/src/components/DataTable.jsx
+++ b/src/components/DataTable.jsx
@@ -19,7 +19,7 @@ export default defineComponent({
params = {},
loading = {},
debug = false,
- border = true,
+ border = false,
...attr
} = attrs;
diff --git a/src/pages/index/business/news/components/AddNewsDialog.vue b/src/pages/index/business/news/components/AddNewsDialog.vue
new file mode 100644
index 0000000..9ebe47d
--- /dev/null
+++ b/src/pages/index/business/news/components/AddNewsDialog.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/news/components/DetailNewsDialog.vue b/src/pages/index/business/news/components/DetailNewsDialog.vue
new file mode 100644
index 0000000..e95e62a
--- /dev/null
+++ b/src/pages/index/business/news/components/DetailNewsDialog.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/news/components/EditNewsDialog.vue b/src/pages/index/business/news/components/EditNewsDialog.vue
new file mode 100644
index 0000000..876949c
--- /dev/null
+++ b/src/pages/index/business/news/components/EditNewsDialog.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/news/index.vue b/src/pages/index/business/news/index.vue
new file mode 100644
index 0000000..04d44fd
--- /dev/null
+++ b/src/pages/index/business/news/index.vue
@@ -0,0 +1,266 @@
+
+
+
+ 新闻管理
+ 新闻列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+ 添加
+
+
+
+
+ 导入
+
+
+
+ 导出
+
+
+ 下载导入模板
+
+
+
+
+
+ 批量操作
+
+
+
+
+ 批量删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product/components/AddProductDialog.vue b/src/pages/index/business/products/product/components/AddProductDialog.vue
new file mode 100644
index 0000000..5eba6b6
--- /dev/null
+++ b/src/pages/index/business/products/product/components/AddProductDialog.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product/components/DetailProductDialog.vue b/src/pages/index/business/products/product/components/DetailProductDialog.vue
new file mode 100644
index 0000000..cf3a735
--- /dev/null
+++ b/src/pages/index/business/products/product/components/DetailProductDialog.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product/components/EditProductDialog.vue b/src/pages/index/business/products/product/components/EditProductDialog.vue
new file mode 100644
index 0000000..9e6c4a7
--- /dev/null
+++ b/src/pages/index/business/products/product/components/EditProductDialog.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product/index.vue b/src/pages/index/business/products/product/index.vue
new file mode 100644
index 0000000..d94d08f
--- /dev/null
+++ b/src/pages/index/business/products/product/index.vue
@@ -0,0 +1,270 @@
+
+
+
+ 产品管理
+ 产品列表
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+ 添加
+
+
+
+
+ 导入
+
+
+
+ 导出
+
+
+ 下载导入模板
+
+
+
+
+
+ 批量操作
+
+
+
+
+ 批量删除
+
+
+
+
+
+
+
+
+
+
+ 暂无图片
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+
+
+ 详情
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product_type/components/AddProductTypeDialog.vue b/src/pages/index/business/products/product_type/components/AddProductTypeDialog.vue
new file mode 100644
index 0000000..ff67416
--- /dev/null
+++ b/src/pages/index/business/products/product_type/components/AddProductTypeDialog.vue
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product_type/components/DetailProductTypeDialog.vue b/src/pages/index/business/products/product_type/components/DetailProductTypeDialog.vue
new file mode 100644
index 0000000..3eae8fe
--- /dev/null
+++ b/src/pages/index/business/products/product_type/components/DetailProductTypeDialog.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product_type/components/EditProductTypeDialog.vue b/src/pages/index/business/products/product_type/components/EditProductTypeDialog.vue
new file mode 100644
index 0000000..864ff93
--- /dev/null
+++ b/src/pages/index/business/products/product_type/components/EditProductTypeDialog.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+ {{ data.product_type_name }}
+ ({{ data.children.length }})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index/business/products/product_type/index.vue b/src/pages/index/business/products/product_type/index.vue
new file mode 100644
index 0000000..a6d75e1
--- /dev/null
+++ b/src/pages/index/business/products/product_type/index.vue
@@ -0,0 +1,244 @@
+
+
+
+ 产品类目管理
+ 产品类目列表
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 批量操作
+
+
+
+
+ 批量删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/service/news.js b/src/service/news.js
new file mode 100644
index 0000000..190518f
--- /dev/null
+++ b/src/service/news.js
@@ -0,0 +1,91 @@
+import { api, downloadFile, createApiUrl} from '~/utils/axios';
+
+
+ /**
+ * 导出新闻
+ * @param {Object} data
+ * @return {Promise} api
+ */
+ export function exportExcel(data) {
+ downloadFile(createApiUrl('News.News/exportExcel'), data);
+ }
+
+ /**
+ * 下载新闻模板
+ * @param {Object} data
+ * @return {Promise} api
+ */
+ export function downloadTemplate(data) {
+ downloadFile(createApiUrl('News.News/downloadTemplate'), data);
+ }
+
+ /**
+ * 导入新闻
+ * @param {Object} data
+ * @return {Promise} api
+ */
+ export const importExcel = createApiUrl('News.News/importExcel');
+
+
+
+
+
+
+
+ /**
+ * 获取字典值
+ * @param {Object} data
+ * @return {Promise} api
+ */
+ export function getDictionary(data) {
+ return api.post('Dictionary.Dictionary/getDictionary', data, {
+ });
+ }
+
+
+/**
+ * 获取新闻列表
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function getNewsList(data) {
+ return api.post('News.News/getNewsList', data);
+}
+
+/**
+ * 删除新闻
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function deleteNews(data) {
+ return api.post('News.News/deleteNews', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '删除失败'
+ });
+}
+
+/**
+ * 添加新闻
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function addNews(data) {
+ return api.post('News.News/addNews', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '添加失败'
+ });
+}
+/**
+ * 编辑新闻
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function editNews(data) {
+ return api.post('News.News/editNews', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '编辑失败'
+ });
+}
diff --git a/src/service/product.js b/src/service/product.js
new file mode 100644
index 0000000..3b4df55
--- /dev/null
+++ b/src/service/product.js
@@ -0,0 +1,85 @@
+import {
+ api,
+ downloadFile,
+ createApiUrl
+} from '~/utils/axios';
+
+
+/**
+ * 导出产品
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function exportExcel(data) {
+ downloadFile(createApiUrl('Products.Product/exportExcel'), data);
+}
+
+/**
+ * 下载产品模板
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function downloadTemplate(data) {
+ downloadFile(createApiUrl('Products.Product/downloadTemplate'), data);
+}
+
+/**
+ * 导入产品
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export const importExcel = createApiUrl('Products.Product/importExcel');
+
+
+
+
+
+
+
+
+/**
+ * 获取产品列表
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function getProductList(data) {
+ return api.post('Products.Product/getProductList', data);
+}
+
+/**
+ * 删除产品
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function deleteProduct(data) {
+ return api.post('Products.Product/deleteProduct', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '删除失败'
+ });
+}
+
+/**
+ * 添加产品
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function addProduct(data) {
+ return api.post('Products.Product/addProduct', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '添加失败'
+ });
+}
+/**
+ * 编辑产品
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function editProduct(data) {
+ return api.post('Products.Product/editProduct', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '编辑失败'
+ });
+}
\ No newline at end of file
diff --git a/src/service/product_type.js b/src/service/product_type.js
new file mode 100644
index 0000000..f1f5a07
--- /dev/null
+++ b/src/service/product_type.js
@@ -0,0 +1,78 @@
+import {
+ api,
+ downloadFile,
+ createApiUrl
+} from '~/utils/axios';
+
+
+/**
+ * 导出产品系列
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function exportExcel(data) {
+ downloadFile(createApiUrl('Products.ProductType/exportExcel'), data);
+}
+
+/**
+ * 下载产品系列模板
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function downloadTemplate(data) {
+ downloadFile(createApiUrl('Products.ProductType/downloadTemplate'), data);
+}
+
+/**
+ * 导入产品系列
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export const importExcel = createApiUrl('Products.ProductType/importExcel');
+
+/**
+ * 获取产品系列列表
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function getProductTypeTree(data) {
+ return api.post('Products.ProductType/getProductTypeTree', data);
+}
+
+/**
+ * 删除产品系列
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function deleteProductType(data) {
+ return api.post('Products.ProductType/deleteProductType', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '删除失败'
+ });
+}
+
+/**
+ * 添加产品系列
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function addProductType(data) {
+ return api.post('Products.ProductType/addProductType', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '添加失败'
+ });
+}
+/**
+ * 编辑产品系列
+ * @param {Object} data
+ * @return {Promise} api
+ */
+export function editProductType(data) {
+ return api.post('Products.ProductType/editProductType', data, {
+ isTransformResponse: true,
+ isShowSuccessMessage: true,
+ errorMessageText: '编辑失败'
+ });
+}
\ No newline at end of file