From ca198a4c1181113477a0396b9325c755c401785d Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Tue, 9 Apr 2024 13:33:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E6=80=BB=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/freight.js | 45 +- src/api/product.js | 77 + src/components/attrFrom/index.vue | 278 ++ src/components/couponList/index.vue | 287 ++ src/components/lazyCascader/index.vue | 470 +++ src/components/serviceGuarantee/index.vue | 234 ++ src/components/templatesFrom/index.vue | 488 +++ src/libs/modal-attr.js | 34 + src/libs/modal-coupon.js | 37 + src/libs/modal-templates.js | 35 + src/main.js | 12 + src/router/modules/product.js | 12 +- src/styles/styles.scss | 11 +- src/views/product/addProduct/addCarMy.vue | 260 ++ src/views/product/addProduct/copyRecord.vue | 102 + src/views/product/addProduct/index.vue | 3299 +++++++++++++++++++ src/views/product/addProduct/taoBao.vue | 800 +++++ src/views/product/productExamine/index.vue | 270 +- 18 files changed, 6655 insertions(+), 96 deletions(-) create mode 100644 src/components/attrFrom/index.vue create mode 100644 src/components/couponList/index.vue create mode 100644 src/components/lazyCascader/index.vue create mode 100644 src/components/serviceGuarantee/index.vue create mode 100644 src/components/templatesFrom/index.vue create mode 100644 src/libs/modal-attr.js create mode 100644 src/libs/modal-coupon.js create mode 100644 src/libs/modal-templates.js create mode 100644 src/views/product/addProduct/addCarMy.vue create mode 100644 src/views/product/addProduct/copyRecord.vue create mode 100644 src/views/product/addProduct/index.vue create mode 100644 src/views/product/addProduct/taoBao.vue diff --git a/src/api/freight.js b/src/api/freight.js index d8b6d65..4456c91 100644 --- a/src/api/freight.js +++ b/src/api/freight.js @@ -1,4 +1,3 @@ - import request from './request' /** @@ -37,3 +36,47 @@ export function expressStatuseApi(id, is_show) { export function syncExpressApi() { return request.get('store/express/sync') } + + +/** + * @description 运费模板 -- 城市 + */ +export function cityList() { + return request.get('system/city/lst') +} +export function cityListV2(pid) { + return request.get('v2/system/city/lst/' + pid) +} +/** + * @description 运费模板 -- 列表 + */ +export function templateListApi(data) { + return request.get('store/shipping/lst', data) +} +/** + * @description 运费模板 -- 新增 + */ +export function templateCreateApi(data) { + return request.post('store/shipping/create', data) +} +/** + * @description 运费模板 -- 编辑 + */ +export function templateUpdateApi(id, data) { + return request.post(`store/shipping/update/${id}`, data) +} +/** + * @description 运费模板 -- 详情 + */ +export function templateDetailApi(id) { + return request.get(`/store/shipping/detail/${id}`) +} +/** + * @description 运费模板 -- 删除 + */ +export function templateDeleteApi(id) { + return request.delete(`store/shipping/delete/${id}`) +} + + + diff --git a/src/api/product.js b/src/api/product.js index 9f42b25..844d972 100644 --- a/src/api/product.js +++ b/src/api/product.js @@ -42,6 +42,12 @@ export function storeCategoryStatusApi(id, status) { export function storeCategoryRecommendApi(id, status) { return request.post(`store/category/is_hot/${id}`, { status }) } +/** + * @description 商品列表 -- 商户分类 + */ +export function categorySelectApi() { + return request.get(`store/category/select`) +} /** * @description 品牌分类 -- 列表 */ @@ -72,6 +78,12 @@ export function brandCategoryDeleteApi(id) { export function brandCategoryStatusApi(id, status) { return request.post(`store/brand/category/status/${id}`, { status }) } +/** + * @description 商品列表 -- 品牌分类 + */ +export function categoryBrandListApi() { + return request.get(`store/category/brandlist`) +} /** * @description 品牌 -- 列表 */ @@ -420,6 +432,7 @@ export function guaranteeUpdateApi(id) { export function guaranteeDeleteApi(id) { return request.delete(`guarantee/delete/${id}`) } + /** * @description 商品列表 -- 编辑排序 */ @@ -519,3 +532,67 @@ export function merSpecsList(data) { export function merProductLstApi(data) { return request.get(`store/product/list`, data) } +// 复制商品 -- 剩余次数 +export function productCopyCountApi() { + return request.get(`store/productcopy/count`) +} +// 商品列表 -- 运费模板筛选 +export function shippingListApi() { + return request.get(`store/shipping/list`) +} +// 商品添加 -- 属性规则 +export function templateLsitApi() { + return request.get(`/store/attr/template/list`) +} +// 添加商品 -- 参数筛选 +export function specsSelectedApi(data) { + return request.get(`store/params/temp/select`,data) +} +// 配置状态 +export function productConfigApi() { + return request.get(`store/product/config`) +} +// 属性规则 -- 添加 +export function attrCreatApi(data) { + return request.post('store/attr/template/create', data) +} +// 商品列表 -- 立即生成规格 +export function generateAttrApi(id,data) { + return request.post(`store/product/get_attr_value/${id}`, data) +} +// 服务保障 -- 添加 +export function guaranteeTemplateAddApi(data) { + return request.post(`guaranteeTemplate/create`, data) +} +// 服务保障 - 搜索 +export function guaranteeTemplateSelectApi(data) { + return request.get(`guaranteeTemplate/select`, data) +} +// 服务保障 - 详情 +export function guaranteeTemplateDetailApi(id) { + return request.get(`guaranteeTemplate/detail/${id}`) +} +// 添加商品 -- 获取服务保障模板列表 +export function guaranteeTemplateListApi() { + return request.get(`guaranteeTemplate/list`) +} +// 添加商品 -- 参数筛选详情 +export function productSpecsDetailApi(data) { + return request.get(`store/params/temp/show`, data) +} +// 商品列表 -- 添加 +export function productCreateApi(data) { + return request.post(`store/product/create`, data) +} +// 商品列表 -- 编辑 +export function productEditApi(id, data) { + return request.post(`store/product/edit/${id}`, data) +} +// 商品列表 -- 商品上下架 +export function changeProductStatus(id, status) { + return request.post(`store/product/change_status/${id}`, { status }) +} + + + + diff --git a/src/components/attrFrom/index.vue b/src/components/attrFrom/index.vue new file mode 100644 index 0000000..6994aa9 --- /dev/null +++ b/src/components/attrFrom/index.vue @@ -0,0 +1,278 @@ + + + + + + + + + + + + {{ item.value }} + + + {{ j }} + + + + 添加 + + + + + + + + + + + + + + + + 确定 + 取消 + + + + + + 添加新规格 + + + + + 取消 + 确 定 + + + + + + + diff --git a/src/components/couponList/index.vue b/src/components/couponList/index.vue new file mode 100644 index 0000000..b3c1f3b --- /dev/null +++ b/src/components/couponList/index.vue @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + {{ row.type | couponTypeFilter }} + + + + + + {{ scope.row.use_min_price===0?'不限制':scope.row.use_min_price }} + + + + + {{ scope.row.coupon_type===1?scope.row.use_start_time+' 一 '+scope.row.use_end_time:scope.row.coupon_time }} + + + + + {{ scope.row.is_limited===0 ? '不限量' : scope.row.remain_count }} + + + + + 发送 + + + + + + + + 确定 + 取消 + + + + + + + diff --git a/src/components/lazyCascader/index.vue b/src/components/lazyCascader/index.vue new file mode 100644 index 0000000..be20747 --- /dev/null +++ b/src/components/lazyCascader/index.vue @@ -0,0 +1,470 @@ + + + + + + {{ placeholder }} + + + + {{ item.label.join(separator) }} + + + + + {{ labelObject.label.join(separator) }} + + + + + + + + + + + + {{ item[props.label].join(separator) }} + + + + {{ searchEmptyText }} + + + + + + + + + + + {{ placeholder }} + + + + {{ item.label.join(separator) }} + + + + + {{ labelObject.label.join(separator) }} + + + + + + + + + + + + + diff --git a/src/components/serviceGuarantee/index.vue b/src/components/serviceGuarantee/index.vue new file mode 100644 index 0000000..3cfbf77 --- /dev/null +++ b/src/components/serviceGuarantee/index.vue @@ -0,0 +1,234 @@ + + + + + + + + + + {{ tag.guarantee_name }} + + + + + + + + + + + {{ item.guarantee_name }} + {{ item.guarantee_info }} + + + + + + + + 取 消 + 确 定 + 确 定 + + + + + + + diff --git a/src/components/templatesFrom/index.vue b/src/components/templatesFrom/index.vue new file mode 100644 index 0000000..1420b62 --- /dev/null +++ b/src/components/templatesFrom/index.vue @@ -0,0 +1,488 @@ + + + + + + + + + + + + 按件数 + 按重量 + 按体积 + + + + + + + 默认全国 (开启指定区域不配送时无效) + + + + + + + + + + + + + + + + + + + + + + + + + + + 删除 + + + + + + + + 添加配送区域 + + + + + 开启 + 关闭 + + + + + + + + + + + + + + + + + + + + + + + 删除 + + + + + + + + 添加指定包邮区域 + + + + + + + 自定义 + 开启 + 关闭 + + + (说明: 选择"开启"时, 仅支持上表添加的配送区域) + + + + + + + + + + + + + + 取 消 + 确 定 + + + + + + + diff --git a/src/libs/modal-attr.js b/src/libs/modal-attr.js new file mode 100644 index 0000000..f459a68 --- /dev/null +++ b/src/libs/modal-attr.js @@ -0,0 +1,34 @@ + +export default function modalAttr(val, callback) { + const h = this.$createElement + return new Promise((resolve, reject) => { + this.$msgbox({ + title: '属性规格', + customClass: 'upload-form', + closeOnClickModal: false, + showClose: false, + message: h('div', { class: 'common-form-upload' }, [ + h('attrFrom', { + props: { + currentRow: val + }, + on: { + getList() { + callback() + } + } + }) + ]), + showCancelButton: false, + showConfirmButton: false + }).then(() => { + resolve() + }).catch(() => { + reject() + this.$message({ + type: 'info', + message: '已取消' + }) + }) + }) +} diff --git a/src/libs/modal-coupon.js b/src/libs/modal-coupon.js new file mode 100644 index 0000000..74dd466 --- /dev/null +++ b/src/libs/modal-coupon.js @@ -0,0 +1,37 @@ + +export default function modalCoupon(couponData, handle, couponId, keyNum, callback) { + const h = this.$createElement + return new Promise((resolve, reject) => { + this.$msgbox({ + title: '优惠券列表', + customClass: 'upload-form-coupon', + closeOnClickModal: false, + showClose: false, + message: h('div', { class: 'common-form-upload' }, [ + h('couponList', { + props: { + couponData: couponData, + handle: handle, + couponId: couponId, + keyNum: keyNum + }, + on: { + getCouponId(id) { + callback(id) + } + } + }) + ]), + showCancelButton: false, + showConfirmButton: false + }).then(() => { + resolve() + }).catch(() => { + reject() + this.$message({ + type: 'info', + message: '已取消' + }) + }) + }) +} diff --git a/src/libs/modal-templates.js b/src/libs/modal-templates.js new file mode 100644 index 0000000..3523b25 --- /dev/null +++ b/src/libs/modal-templates.js @@ -0,0 +1,35 @@ + +export default function modalTemplates(id, callback, componentKey) { + const h = this.$createElement + return new Promise((resolve, reject) => { + this.$msgbox({ + title: '运费模板', + customClass: 'upload-form-temp', + closeOnClickModal: false, + showClose: false, + message: h('div', { class: 'common-form-upload' }, [ + h('templatesFrom', { + props: { + tempId: id, + componentKey: componentKey + }, + on: { + getList() { + callback() + } + } + }) + ]), + showCancelButton: false, + showConfirmButton: false + }).then(() => { + resolve() + }).catch(() => { + reject() + this.$message({ + type: 'info', + message: '已取消' + }) + }) + }) +} diff --git a/src/main.js b/src/main.js index 04f7a1b..8be1718 100644 --- a/src/main.js +++ b/src/main.js @@ -25,6 +25,9 @@ import FormCreate from "@form-create/element-ui"; import uploadPicture from "./components/uploadPicture/uploadFrom"; import VueUeditorWrap from "vue-ueditor-wrap"; import newsCategory from "./components/newsCategory/newsCategoryFrom"; +import couponList from './components/couponList' +import attrFrom from './components/attrFrom' +import templatesFrom from './components/templatesFrom' import { getToken } from "./utils/auth"; import "./icons"; // icon @@ -36,6 +39,9 @@ import { modalSure, deleteSure } from "@/libs/public"; import { modalSureDelete } from "@/libs/public"; import * as filters from "./filters"; import notice from "@/libs/notice"; +import modalCoupon from '@/libs/modal-coupon' +import modalAttr from '@/libs/modal-attr' +import modalTemplates from '@/libs/modal-templates' import guidancePop from "@/components/guidancePop"; // swiper import VueAwesomeSwiper from "vue-awesome-swiper"; @@ -45,6 +51,9 @@ Vue.use(uploadPicture); Vue.use(FormCreate); Vue.use(newsCategory); Vue.component("vue-ueditor-wrap", VueUeditorWrap); +Vue.component('couponList', couponList) +Vue.component('attrFrom', attrFrom) +Vue.component('templatesFrom', templatesFrom) Vue.use(VueAwesomeSwiper); Vue.use(Viewer, { defaultOptions: { @@ -72,6 +81,9 @@ Vue.prototype.$videoCloud = videoCloud; Vue.prototype.$modalSure = modalSure; Vue.prototype.$deleteSure = deleteSure; Vue.prototype.$modalSureDelete = modalSureDelete; +Vue.prototype.$modalCoupon = modalCoupon +Vue.prototype.$modalAttr = modalAttr +Vue.prototype.$modalTemplates = modalTemplates Vue.prototype.moment = Moment; Vue.component('guidancePop',guidancePop); diff --git a/src/router/modules/product.js b/src/router/modules/product.js index 6c91d8e..070e9e7 100644 --- a/src/router/modules/product.js +++ b/src/router/modules/product.js @@ -123,7 +123,17 @@ const productRouter = noCache: true }, component: () => import('@/views/product/productGuarantee/index.vue') - } + }, + { + path: 'addProduct/:id?/:edit?', + component: () => import('@/views/product/addProduct/index'), + name: 'AddProduct', + meta: { + title: '商品添加', + noCache: true + }, + hidden: true + }, ] } diff --git a/src/styles/styles.scss b/src/styles/styles.scss index 01f1917..4755e71 100644 --- a/src/styles/styles.scss +++ b/src/styles/styles.scss @@ -438,7 +438,7 @@ table .el-image{ height: 46px!important; line-height: 46px!important; font-size: 13px; - padding-left: 0!important; + padding-left: 0!important; } .styleTwo .el-submenu__title{ @@ -453,7 +453,7 @@ table .el-image{ background: #77777D!important; .el-submenu__title{ background: #77777D!important; - } + } } .styleTwo .router-link-active{ background: #ffffff; @@ -464,3 +464,10 @@ table .el-image{ .el-slider__button-wrapper{ z-index: 100 } +.upload-form-coupon{ + min-width: 1100px!important; + max-height:700px!important; +} +.upload-form-temp{ + min-width: 1000px!important; +} diff --git a/src/views/product/addProduct/addCarMy.vue b/src/views/product/addProduct/addCarMy.vue new file mode 100644 index 0000000..5882096 --- /dev/null +++ b/src/views/product/addProduct/addCarMy.vue @@ -0,0 +1,260 @@ + + + + + + + + 固定卡密 + + + + + + + + + 件 + + + + + + 卡号{{ index + 1 }}: + + 卡密{{ index + 1 }}: + + 删除 + + + + 添加卡密 + + + + + + + + + + + + + + + diff --git a/src/views/product/addProduct/copyRecord.vue b/src/views/product/addProduct/copyRecord.vue new file mode 100644 index 0000000..05be5fc --- /dev/null +++ b/src/views/product/addProduct/copyRecord.vue @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/product/addProduct/index.vue b/src/views/product/addProduct/index.vue new file mode 100644 index 0000000..a69eec4 --- /dev/null +++ b/src/views/product/addProduct/index.vue @@ -0,0 +1,3299 @@ + + + + + + + + + + + + + + + + + + + + + 普通商品 + (物流发货) + + + ✓ + + + + 虚拟商品 + (虚拟发货) + + + ✓ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ videoLink ? "确认添加" : "上传视频" }} + + + + + + + + 您的浏览器不支持 video 标签。 + + + + + + + + + + + + + + + 否 + 是 + + + + + + + + + 一批次等于 + {{ formValidate.unit_name || '件' }} + + + + + + + + + + + + + + + + + + + {{ tag.title }} + + 选择优惠券 + + + + + + + + + + + 单独设置 + 默认设置 + + + + + + + 不设置会员价 + 默认设置会员价 + 自定义设置会员价 + + + + + + + 单规格 + 多规格 + + + + + + + + + + + 确认 + + 添加规格模板 + + + + + + + {{ item.value }} + + + + + {{ j }} + + + + + 添加 + + + + + + + + + + + + + + + + + + 确定 + + 取消 + + + + + 添加新规格 + + 立即生成 + + + + + + + + + + + + {{ oneFormBatch[0]['attr'] }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 添加卡密 + + 已设置 + + + + + + + + + + + + + + + + + + 批量添加 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 添加卡密 + + 已设置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 添加卡密 + + 已设置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ item.name }} + + + + + + + + + 否 + 是 + + + + + 为0或者空则使用商户默认设置(实际支付的金额 * 倍数) + + + + 否 + 是 + + + + + 为0或者空则使用商户默认设置(实际支付的金额 * 倍数) + + + + + + + 否 + 是 + + + + + + 1. 选择开启礼包后,不可修改 + + 2. + 用户购买该分销礼包商品后,可自动成为分销员(即已成为分销员的用户在移动端看不到该分销礼包商品) + + + 3. + 该商品设置为分销礼包后会展示在平台后台的【分销】-【分销礼包】(即不会展示在平台后台-【商品列表】) + + + + + + + + + + + 关闭 + 开启 + + + + + + + + 统一设置 + 独立设置 + + + + + + + 百分比 + 固定数量 + + + 赠送 + + 积分 + + + + % + + 百分比:当前订单该商品实际支付总金额 * 设置的比例 = 赠送的积分;固定数量:指定数量 * 购买的商品数量 = 赠送的积分 + + + + + + + + + 单独设置 + 默认设置 + + + + + + + + 百分比 + 固定数量 + + + 抵扣 + + 元 + + + + % + + 百分比:当前订单该商品实际支付总金额 * 设置的比例 = 可以抵扣的金额;固定数量:指定数量 * 购买的商品数量 = 可以抵扣的金额 + + + + + + + + + + + + + + + + + + {{ item.name }} + + + + + + + + + 否 + 是 + + + + + + + + + + 添加运费模板 + + + + + + + + + 默认为0,则不限制购买件数 + + + + + + + 不限购 + 单次限购 + 长期限购 + + + + + + + + 单次限购是限制每次下单最多购买的数量,长期限购是限制一个用户总共可以购买的数量 + + + + + + + + + + + + + + + + + 添加服务说明模板 + + + + + + + + + + + + + + + + + + + + + + + + + 删除 + + + + + 添加参数 + + + + + + + + + + 关闭 + 开启 + + + + + + {{ items.label }} + + + 必填 + + 删除 + + + + + + 添加表单 + + 备注: + + + 1.用户下单时需填写的信息,最多可设置10条 + + + 2.虚拟物品不可加入购物车,用户可直接购买 + + + + + + + + + + + + + + + + + + 上一步 + 下一步 + 提交 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/product/addProduct/taoBao.vue b/src/views/product/addProduct/taoBao.vue new file mode 100644 index 0000000..e7c035d --- /dev/null +++ b/src/views/product/addProduct/taoBao.vue @@ -0,0 +1,800 @@ + + + + + 复制淘宝、天猫、京东、苏宁、1688; + 生成的商品默认是没有上架的,请手动上架商品! + 商品复制次数剩余:{{ count }}次 + + 增加采集次数 + + 查看商品复制记录 + + + + + 确定 + + + + + + + + + + + diff --git a/src/views/product/productExamine/index.vue b/src/views/product/productExamine/index.vue index 4292842..0389c45 100644 --- a/src/views/product/productExamine/index.vue +++ b/src/views/product/productExamine/index.vue @@ -1,6 +1,7 @@ + @@ -13,6 +14,7 @@ + @@ -38,48 +40,49 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + 添加商品 + + 批量审核 + 批量强制下架 + 批量不显示 + 批量显示 + 批量设置标签 + 批量设置推荐 - 批量审核 - 批量强制下架 - 批量不显示 - 批量显示 - 批量设置标签 - 批量设置推荐 - + - - + + {{ props.row.storeCategory?props.row.storeCategory.cate_name:'-' }} - {{ item.category ? item.category.cate_name : '-' }} @@ -101,71 +104,53 @@ {{ props.row.ficti | filterEmpty }} - - - + + - - + + + + + + {{ scope.row.store_name || '-' }} + {{ scope.row.spec_type==0 ? '[单规格]' : '[多规格]' }} + - - - {{ scope.row.spec_type==0 ? '[单规格]' : '[多规格]' }}{{ scope.row.store_name || '-' }} - - - + {{ scope.row.merchant ? scope.row.merchant.mer_name : '' }} - - - - - - - + + + + - - + + - + + + - + - {{ scope.row.us_status | productStatusFilter }} + + + + {{ scope.row.us_status | productStatusFilter }} - 详情 @@ -178,7 +163,7 @@ - 编辑商品 + 编辑商品 查看评价 @@ -306,7 +291,8 @@ import { updatetProductLabel, batchesLabelsApi, batchesRecommendApi, - batchesOnOffApi + batchesOnOffApi, + changeProductStatus } from '@/api/product' import { roterPre } from '@/settings' import infoFrom from './info' @@ -385,7 +371,7 @@ export default { store_name: '', rank: '', us_status: '', - star: '' + star: 0 }, productStatusList: [ { label: "上架显示", value: 1 }, @@ -454,15 +440,24 @@ export default { this.getLstFilterApi() }, onchangeIsShow(row) { - changeApi(row.product_id, row.is_used).then(({ - message - }) => { + changeApi(row.product_id, row.is_used).then(({message}) => { this.$message.success(message) this.getList('') this.getLstFilterApi() - }).catch(({ - message - }) => { + }).catch(({message}) => { + this.$message.error(message) + }) + }, + // 修改商品状态 + changeStatus(row){ + // 状态取反 + let status = Number(row.us_status) == 1 ? 0 : 1; + // 发起请求 + changeProductStatus(row.product_id, status).then(({message}) => { + this.$message.success(message) + this.getList('') + this.getLstFilterApi() + }).catch(({message}) => { this.$message.error(message) }) }, @@ -573,10 +568,16 @@ export default { this.fullscreenLoading = false }) }, - onEdit(id) { - this.productId = id - this.getInfo(id) - this.dialogVisible = true + onEdit(product) { + let merId = product.mer_id || 0; + // 判断:如果merId 大于0 则商品为商户添加商品,只能进行基本信息编辑;否则是平台添加商品 可以进行全部信息编辑 + if(merId <= 0){ + this.$router.push({path: this.roterPre + '/product/addProduct/' + product.product_id}); + }else{ + this.productId = product.product_id + this.getInfo(product.product_id) + this.dialogVisible = true + } }, // 编辑虚拟销量 toVirtualSales(id) { @@ -752,6 +753,22 @@ export default { /deep/.el-select-dropdown__item{ max-width: 350px!important; } +/deep/ .el-table__cell { + .cell{ + padding: 0!important; + .el-table__expand-icon{ + height: 50px!important; + line-height: 50px!important; + .el-icon.el-icon-arrow-right{ + font-size: 30px !important; + height: 50px !important; + line-height: 50px !important; + text-align: center; + position: unset!important; + } + } + } +} .template{ overflow: hidden; } @@ -768,7 +785,7 @@ export default { background: rgba(0, 0, 0, 0.5); } .tags_name{ - font-size: 10px; + font-size: 13px; height: 16px; line-height: 16px; padding: 0 2px; @@ -812,9 +829,78 @@ table .el-image { color: #409EFF; font-size: 12px; } - .el-icon-arrow-down { font-size: 12px; } +.user-content{ + --user-content-height-: 80px; + height: var(--user-content-height-); + width: 100%; + display: inline-flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: flex-start; + align-items: center; + .user-avatar{ + height: var(--user-content-height-); + width: var(--user-content-height-); + display: inline-flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; + align-items: center; + .logo{ + height: 80%!important; + width: 80%!important; + } + } + .user-info{ + max-width: calc(100% - var(--user-content-height-)); + height: var(--user-content-height-); + display: inline-flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: center; + align-items: flex-start; + .nickname{ + width: 100%; + height: 25px; + line-height: 25px; + text-align: left; + font-size: 15px; + font-weight: bold; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: inline-flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: flex-start; + align-items: center; + .user-id{ + color: #fff; + background-color: #409eff; + border-color: #409eff; + height: 18px; + line-height: 20px; + font-size: 13px; + padding: 0 5px; + border-radius: 5px; + margin-left: 10px; + width: max-content!important; + } + } + .user-id{ + width: 100%; + text-align: left; + font-size: 13px; + line-height: calc(var(--user-content-height- * 35%)); + } + } +} +.switch-content{ + text-align: justify!important; + display: inline-flex; +}