You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rcgy_xmf_qrcode/css/chunk-04e92c3a.e7c8d947.css...

1 line
36 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"sources":["webpack:///src/views/commodity/components/commodityCreation/src/views/commodity/components/commodityCreation/productInfo.vue","webpack:///src/components/editor/src/components/editor/editorBar.vue","webpack:///src/views/commodity/components/commodityCreation/src/views/commodity/components/commodityCreation/Graphic.vue","webpack:///src/views/commodity/components/commodityCreation/src/views/commodity/components/commodityCreation/PriceInventory.vue","webpack:///src/views/commodity/components/commodityCreation/src/views/commodity/components/commodityCreation/Service.vue","webpack:///src/views/commodity/components/commodityCreation/src/views/commodity/components/commodityCreation/index.vue"],"names":[],"mappings":"AAsOA,2BACA,WAAA,CACA,wBAEA,CACA,oCACA,cAAA,CACA,YAAA,CACA,cAAA,CACA,6BACA,CAEA,4BACA,wBACA,CAIA,iCACA,cAAA,CACA,yCAAA,CACA,eAAA,CACA,UAAA,CACA,gBACA,CCnHA,QACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,SACA,CAIA,eAFA,qBAKA,CAHA,MAEA,YACA,CC/CA,4BACA,wBACA,CACA,iCACA,cAAA,CACA,yCAAA,CACA,eAAA,CACA,UAAA,CACA,gBACA,CCgBA,2BACA,WAAA,CACA,wBAEA,CACA,oCACA,cAAA,CACA,YAAA,CACA,cAAA,CACA,6BACA,CAEA,4BACA,wBACA,CACA,iCACA,cAAA,CACA,yCAAA,CACA,eAAA,CACA,UAAA,CACA,gBACA,CACA,4BACA,cAAA,CACA,0CAAA,CACA,eAAA,CACA,UACA,CACA,0BACA,aAAA,CACA,YAAA,CACA,WAAA,CACA,qBAAA,CACA,iBAAA,CACA,wBACA,CACA,8BACA,kBACA,CACA,gCACA,WAAA,CACA,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,yBACA,CAOA,+DACA,cAAA,CACA,0CAAA,CACA,eAAA,CACA,aACA,CC9DA,2BACA,WAAA,CACA,wBAEA,CACA,oCACA,cAAA,CACA,YAAA,CACA,cAAA,CACA,6BACA,CACA,4BACA,wBACA,CACA,iCACA,cAAA,CACA,yCAAA,CACA,eAAA,CACA,UAAA,CACA,gBACA,CACA,4BACA,cAAA,CACA,0CAAA,CACA,eAAA,CACA,UACA,CACA,gCACA,WAAA,CACA,iBAAA,CACA,WAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,yBACA,CAOA,+DACA,cAAA,CACA,0CAAA,CACA,eAAA,CACA,aACA,CACA,yBACA,cAAA,CACA,iBAAA,CACA,gBAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,iBAAA,CACA,wBACA,CACA,8BACA,cAAA,CACA,0CAAA,CACA,eAAA,CACA,aACA,CCzCA,sBAGA,UAAA,CAEA,iBAAA,CAIA,yBACA,CACA,4BACA,wBACA,CACA,iCACA,cAAA,CACA,yCAAA,CACA,eAAA,CACA,UAAA,CACA,gBACA,CAEA,2BACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CACA,0BACA,CAEA,6BACA,iBAAA,CACA,eAAA,CACA,UAAA,CACA,QAAA,CACA,WAAA,CACA,eACA,CACA,qCACA,WAAA,CACA,YAAA,CACA,kBAAA,CACA,wBACA","file":"chunk-04e92c3a.e7c8d947.css","sourcesContent":["<template>\n <div>\n <div>\n <div class=\"box-title\">\n <span>基本信息</span>\n </div>\n <div style=\"width:1000px;\">\n <el-form :model=\"ruleForm\"\n :rules=\"rules\"\n ref=\"ruleForm\"\n size=\"small\"\n label-width=\"180px\"\n class=\"demo-ruleForm\">\n <el-form-item label=\"商品分类\"\n prop=\"name\">\n <span>已选: {{this.$store.state.CategorySelected }}</span>\n <el-button class=\"init-text\"\n type=\"text\"\n style=\"font-size:14px;margin-left:10px\"\n @click=\"revise()\">修改</el-button>\n </el-form-item>\n <el-form-item label=\"商品标题\"\n prop=\"name\">\n <el-input v-model=\"ruleForm.name\"\n maxlength=\"30\"\n show-word-limit\n placeholder=\"需清晰描述所售商品,包含品牌信息,商品名称,商品规格,需审核后生效\"></el-input>\n </el-form-item>\n <el-form-item label=\"推荐语\"\n prop=\"name1\">\n <el-input v-model=\"ruleForm.name1\"\n maxlength=\"50\"\n show-word-limit\n placeholder=\"请输入商品推荐语\"></el-input>\n </el-form-item>\n\n <el-form-item label=\"类目属性 \"\n required>\n <span>错误填写类目、属性,可能会引起商品下架,影响您的正常销售,请认真填写</span>\n <div class=\"form_box\">\n <el-form label-width=\"auto\"\n style=\"display:flex;\"\n class=\"demo-ruleForm\">\n <el-form-item label=\"商品品牌\"\n prop=\"age\"\n size=\"small\"\n style=\"margin-top: 16px\"\n :rules=\"[\n { required: true, message: '年龄不能为空' },\n { type: 'number', message: '年龄必须为数字值' }\n ]\">\n <el-input type=\"age\"\n autocomplete=\"off\"\n style=\"width:240px;margin-right:10px;\"></el-input>\n <el-button type=\"init-button2\"\n small=\"mini\"\n plain>添加品牌</el-button>\n </el-form-item>\n <el-form-item label=\"原产地 \"\n prop=\"age\"\n size=\"small\"\n style=\"margin-top: 16px\"\n :rules=\"[\n { required: true, message: '年龄不能为空' },\n { type: 'number', message: '年龄必须为数字值' }\n ]\">\n <el-input type=\"age\"\n autocomplete=\"off\"\n style=\"width:240px\"></el-input>\n </el-form-item>\n <el-form-item label=\"套装规格\"\n prop=\"age\"\n size=\"small\"\n style=\"margin-top: 16px\">\n <el-input type=\"age\"\n autocomplete=\"off\"\n style=\"width:240px\"></el-input>\n </el-form-item>\n </el-form>\n </div>\n </el-form-item>\n <el-form-item label=\"供应商\"\n prop=\"region\">\n <el-select v-model=\"ruleForm.region\"\n placeholder=\"请选择活动区域\">\n <el-option label=\"区域一\"\n value=\"shanghai\"></el-option>\n <el-option label=\"区域二\"\n value=\"beijing\"></el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"支付方式\"\n prop=\"resource\">\n <el-radio-group v-model=\"ruleForm.resource\">\n <el-radio label=\"在线支付\"></el-radio>\n <el-radio label=\"货到付款\"></el-radio>\n <el-radio label=\"在线支付/货到付款\"></el-radio>\n </el-radio-group>\n </el-form-item>\n <el-form-item label=\"订单库存计数\"\n prop=\"resource1\">\n <el-radio v-model=\"ruleForm.resource1\"\n label=\"1\">下单减库存</el-radio>\n <p style='\n font-size: 12px;\n font-weight: 400;\n color: #999999;'>买家提交订单,扣减库存,存在恶拍风险</p>\n <el-radio v-model=\"ruleForm.resource1\"\n label=\"2\">付款减库存</el-radio>\n <p style='\n font-size: 12px;\n font-weight: 400;\n color: #999999;'>买家支付订单,扣减库存,存在超卖风险</p>\n </el-form-item>\n </el-form>\n </div>\n </div>\n <!-- 删除提示弹窗-->\n <Dialog :dialogVisible=\"dialog_visible\"\n :dialog_config=\"dialog_config\"\n @cancel=\"cancel\"\n @confirm=\"confirm\">\n </Dialog>\n </div>\n</template>\n<script>\nexport default {\n data() {\n return {\n // 控制dialog显示隐藏\n dialog_visible: false,\n // 传入dialog的参数\n dialog_config: {\n title: '',\n content: '',\n },\n ruleForm: {\n name1: '',\n name: '',\n region: '',\n date1: '',\n date2: '',\n delivery: false,\n type: [],\n resource: '',\n resource1: '1',\n desc: '',\n },\n rules: {\n name: [\n {\n required: true,\n message: '请输入商品标题',\n trigger: 'blur',\n },\n {\n min: 0,\n max: 30,\n message: '长度在 0 到 30 个字符',\n trigger: 'blur',\n },\n ],\n region: [\n {\n required: true,\n message: '请选择活动区域',\n trigger: 'change',\n },\n ],\n date1: [\n {\n type: 'date',\n required: true,\n message: '请选择日期',\n trigger: 'change',\n },\n ],\n date2: [\n {\n type: 'date',\n required: true,\n message: '请选择时间',\n trigger: 'change',\n },\n ],\n type: [\n {\n type: 'array',\n required: true,\n message: '请至少选择一个活动性质',\n trigger: 'change',\n },\n ],\n resource: [\n {\n required: true,\n message: '请选择活动资源',\n trigger: 'change',\n },\n ],\n desc: [\n {\n required: true,\n message: '请填写活动形式',\n trigger: 'blur',\n },\n ],\n },\n }\n },\n methods: {\n revise() {\n this.dialog_config.title = '修改提示'\n this.dialog_config.content =\n '离开此页面会导致未保存的内容丢失,确定离开?'\n this.dialog_visible = true\n },\n // 监听子组件取消事件\n cancel() {\n this.dialog_visible = false\n },\n // 监听子组件确认事件\n confirm() {\n this.dialog_visible = false\n this.$emit('handleClose', false)\n },\n },\n}\n</script>\n<style scoped>\n.form_box {\n width: 800px;\n border: 1px solid #e8e8e8;\n /* height: 112px; */\n}\n.form_box .el-form {\n padding: 0 20px;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.box-title {\n padding: 15px 0px 24px 20px;\n}\n/*\nel-icon-arrow-down\n */\n.box-title span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n</style>\n","<template lang=\"html\">\n <div class=\"editor\">\n <div ref=\"toolbar\" class=\"toolbar\"></div>\n <div ref=\"editor\" class=\"text\"></div>\n </div>\n</template>\n\n<script>\nimport E from 'wangeditor'\nexport default {\n name: 'editorBar',\n data () {\n return {\n // uploadPath,\n editor: null,\n info_: null\n }\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n value: {\n type: String,\n default: ''\n },\n isClear: {\n type: Boolean,\n default: false\n },\n initialize1: {\n type: String,\n default: ''\n }\n },\n watch: {\n isClear (val) {\n // 触发清除文本域内容\n if (val) {\n this.editor.txt.clear()\n this.info_ = null\n }\n }\n // value为编辑框输入的内容这里我监听了一下值当父组件调用得时候如果给value赋值了子组件将会显示父组件赋给的值\n // 这里有个bug在输入的时候会移动光标\n // value: function (value) {\n // if (value !== this.editor.txt.html()) {\n // this.editor.txt.html(this.value)\n // }\n // }\n },\n mounted () {\n this.seteditor()\n this.value = ''\n // var p = '#需求描述:<br />#任务分析:<br />#验收标准:<br />'\n this.editor.txt.html(this.initialize1)\n },\n methods: {\n // 父组件赋值内容\n valueHtml (val) {\n this.editor.txt.html(val)\n },\n // 父组件自动清空子组件的内容\n clearHtml () {\n this.editor.txt.html('')\n },\n seteditor () {\n let mytoken = sessionStorage.getItem(\n 'X-Admin-Token'\n )\n this.editor = new E(this.$refs.toolbar, this.$refs.editor)\n this.editor.customConfig.uploadImgShowBase64 = false // base 64 存储图片\n this.editor.customConfig.uploadImgServer = 'http://192.168.2.201:8804/IntelligentCommunity/manage/upload/uploadVoteTitle' // 配置服务器端地址\n this.editor.customConfig.uploadImgHeaders = {\n 'X-Admin-Token': mytoken\n } // 自定义 header\n this.editor.customConfig.uploadFileName = 'file' // 后端接受上传文件的参数名\n this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024 // 将图片大小限制为 2M\n this.editor.customConfig.uploadImgMaxLength = 6 // 限制一次最多上传 3 张图片\n this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000 // 设置超时时间\n // 配置菜单\n this.editor.customConfig.menus = [\n 'head', // 标题\n 'bold', // 粗体\n 'fontSize', // 字号\n 'fontName', // 字体\n 'italic', // 斜体\n 'underline', // 下划线\n 'strikeThrough', // 删除线\n 'link', // 插入链接\n 'list', // 列表\n 'justify', // 对齐方式\n 'image', // 插入图片\n 'table', // 表格\n 'fullscreen' // 全屏\n ]\n\n this.editor.customConfig.uploadImgHooks = {\n fail: (xhr, editor, result) => {\n // 插入图片失败回调\n },\n success: (xhr, editor, result) => {\n // 图片上传成功回调\n },\n timeout: (xhr, editor) => {\n // 网络超时的回调\n },\n error: (xhr, editor) => {\n // 图片上传错误的回调\n },\n customInsert: (insertImg, result, editor) => {\n console.log(result, editor)\n // 图片上传成功,插入图片的回调\n // result为上传图片成功的时候返回的数据这里我打印了一下发现后台返回的是data[{url:\"路径的形式\"},...]\n // console.log(result.data[0].url)\n // insertImg()为插入图片的函数\n // 循环插入图片\n // for (let i = 0; i < 1; i++) {\n // console.log(result)\n for (var i = 0; i < result.length; i++) {\n let url = lookImgUrl() + '/' + result[i]\n insertImg(url)\n }\n\n // }\n }\n }\n this.editor.customConfig.onchange = html => {\n this.info_ = html // 绑定当前逐渐地值\n this.$emit('change', this.info_) // 将内容同步到父组件中\n }\n // 创建富文本编辑器\n this.editor.create()\n }\n }\n}\n</script>\n<style>\n.editor {\n width: 100%;\n margin: 0 auto;\n position: relative;\n z-index: 0;\n}\n.toolbar {\n border: 1px solid #ccc;\n}\n.text {\n border: 1px solid #ccc;\n height: 164px;\n}\n</style>\n","<template>\n <div>\n <div>\n <div class=\"box-title\">\n <span>图文信息</span>\n </div>\n <div style=\"width:1000px;\">\n <el-form label-width=\"180px\" class=\"demo-ruleForm\">\n <el-form-item\n label=\"商品品牌\"\n prop=\"age\"\n size=\"small\"\n style=\"margin-top: 16px\"\n :rules=\"[{ required: true, message: '年龄不能为空' }]\"\n >\n <el-upload action=\"#\" list-type=\"picture-card\" :auto-upload=\"false\">\n <i slot=\"default\" class=\"el-icon-plus\"></i>\n <div slot=\"file\" slot-scope=\"{ file }\">\n <img\n class=\"el-upload-list__item-thumbnail\"\n :src=\"file.url\"\n alt=\"\"\n />\n <span class=\"el-upload-list__item-actions\">\n <span\n class=\"el-upload-list__item-preview\"\n @click=\"handlePictureCardPreview(file)\"\n >\n <i class=\"el-icon-zoom-in\"></i>\n </span>\n <span\n v-if=\"!disabled\"\n class=\"el-upload-list__item-delete\"\n @click=\"handleDownload(file)\"\n >\n <i class=\"el-icon-download\"></i>\n </span>\n <span\n v-if=\"!disabled\"\n class=\"el-upload-list__item-delete\"\n @click=\"handleRemove(file)\"\n >\n <i class=\"el-icon-delete\"></i>\n </span>\n </span>\n </div>\n <div slot=\"tip\" class=\"el-upload__tip\" style=\"color: #999999;\">\n 1、主图至少一张图片主图图片应包含商品正反面外包装图若涉及活动图片上需清晰体现活动时间和联系方式\n <br />\n 2、仅支持png、jpg、jpeg格式建议上传1:1图片图片至少600*600图片大小不超过1M\n </div>\n </el-upload>\n <el-dialog :visible.sync=\"dialogVisible\">\n <img width=\"100%\" :src=\"dialogImageUrl\" alt=\"\" />\n </el-dialog>\n </el-form-item>\n <el-form-item\n label=\"原产地 \"\n prop=\"age\"\n size=\"small\"\n style=\"margin-top: 16px\"\n :rules=\"[{ required: true, message: '年龄不能为空' }]\"\n >\n <editor-bar style=\"width:100%\"></editor-bar>\n <div style=\"color: #999999; font-size:12px\">\n 1、详情图图片应与商品相关包含商品正反面外包装图若涉及活动图片上需清洗体现活动时间、联系方式\n <br />\n 2、若商品为食品反面外包装还需清晰度体现SC码以及生产厂商、生产日期、有效期等详细信息\n </div>\n <!---->\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport editorBar from '@/components/editor/editorBar.vue'\nexport default {\n components: { editorBar },\n data() {\n return {\n dialogImageUrl: '',\n dialogVisible: false,\n disabled: false\n }\n },\n methods: {\n handleRemove(file) {\n console.log(file)\n },\n handlePictureCardPreview(file) {\n this.dialogImageUrl = file.url\n this.dialogVisible = true\n },\n handleDownload(file) {\n console.log(file)\n }\n }\n}\n</script>\n\n<style scoped>\n.box-title {\n padding: 15px 0px 24px 20px;\n}\n.box-title span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n</style>\n","<template>\n <div>\n <div>\n <div class=\"box-title\">\n <span>基本信息</span>\n </div>\n <div style=\"width:1000px;\">\n <el-form :model=\"ruleForm\"\n :rules=\"rules\"\n ref=\"ruleForm\"\n size=\"small\"\n label-width=\"180px\"\n class=\"demo-ruleForm\">\n <el-form-item label=\"售卖价\"\n prop=\"sellPrice\">\n <el-input placeholder=\"必须大于0最多保留两位小数\"\n style='width: 316px'\n v-model=\"ruleForm.sellPrice\">\n <i slot=\"suffix\">(元)</i>\n </el-input>\n </el-form-item>\n <el-form-item label=\"划线价\"\n prop=\"underlinePrice\">\n <el-input placeholder=\"划线价需高于售卖假,最多保留两位小数\"\n style='width: 316px'\n v-model=\"ruleForm.underlinePrice\">\n <i slot=\"suffix\">(元)</i>\n </el-input>\n </el-form-item>\n <el-form-item label=\"商品规格\"\n prop=\"specifications\">\n <p class=\"txt_small\">1、商品规格需写明具体的斤数、克数、毫升等且每一个sku中只能设置一款商品规格如商品是乳液sku中只能是乳液的不同规格不得出现精华水、面霜等其他商品规格\n <br>\n 2、请准确填写并更新商品实际库存超卖导致的虚假及延迟发货会引起用户投诉与平台处罚商品规格将在用户选择规格下单时展示最多支持三组第一个商品规格可以添加规格图片\n </p>\n <div class=\"spe_box\">\n <div>\n <el-input placeholder=\"\"\n style='width: 468px'\n v-model=\"ruleForm.specifications\">\n </el-input>\n </div>\n <div>\n <el-input placeholder=\"\"\n style='width: 196px'\n v-model=\"ruleForm.specifications_color\">\n </el-input>\n </div>\n <div>\n <el-input placeholder=\"输入属性值(如红色、s码)\"\n style='width: 196px'\n v-model=\"ruleForm.specifications_color_x\">\n\n </el-input>\n <el-button style=\"margin-left:10px\">上传图片</el-button>\n <div>\n <span class='btn_txt'>添加属性值</span>\n </div>\n </div>\n </div>\n <div class=\"spe_box\">\n <div>\n <el-input placeholder=\"\"\n style='width: 468px'\n v-model=\"ruleForm.specifications\">\n </el-input>\n </div>\n <div>\n <el-input placeholder=\"\"\n style='width: 196px'\n v-model=\"ruleForm.specifications_color\">\n </el-input>\n </div>\n <div>\n <el-input placeholder=\"输入属性值(如红色、s码)\"\n style='width: 196px'\n v-model=\"ruleForm.specifications_color_x\">\n\n </el-input>\n <el-button style=\"margin-left:10px\">上传图片</el-button>\n <div>\n <span class='btn_txt'>添加属性值</span>\n </div>\n </div>\n </div>\n <div class=\"add_commodity\">\n <span class='el-icon-plus'>添加商品</span>\n </div>\n </el-form-item>\n <el-form-item label=\"商品库存与价格\"\n prop=\"specifications\">\n <p>批量设置 <span class=\"txt_small\">在下方框中选择内容进行批量填充</span></p>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n data() {\n return {\n ruleForm: {\n sellPrice: '',\n underlinePrice: '',\n specifications: '颜色',\n specifications_color: '红色',\n },\n rules: {\n name: [\n {\n required: true,\n message: '请输入商品标题',\n trigger: 'blur',\n },\n {\n min: 0,\n max: 30,\n message: '长度在 0 到 30 个字符',\n trigger: 'blur',\n },\n ],\n },\n }\n },\n methods: {},\n}\n</script>\n<style scoped>\n.form_box {\n width: 800px;\n border: 1px solid #e8e8e8;\n /* height: 112px; */\n}\n.form_box .el-form {\n padding: 0 20px;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.box-title {\n padding: 15px 0px 24px 20px;\n}\n.box-title span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n.txt_small {\n font-size: 12px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #999999;\n}\n.spe_box {\n margin: 16px 0;\n padding: 16px;\n width: 872px;\n box-sizing: border-box;\n border-radius: 2px;\n border: 1px solid #e9e9e9;\n}\n.spe_box div {\n margin-bottom: 16px;\n}\n.add_commodity {\n width: 116px;\n text-align: center;\n height: 32px;\n line-height: 32px;\n background: #ffefe9;\n border-radius: 2px;\n border: 1px dashed #fb4702;\n}\n.add_commodity span {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #fb4702;\n}\n.btn_txt {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #fb4702;\n}\n</style>\n","<template>\n <div>\n <div>\n <div class=\"box-title\">\n <span>基本信息</span>\n </div>\n <div style=\"width:1000px;\">\n <el-form :model=\"ruleForm\"\n :rules=\"rules\"\n ref=\"ruleForm\"\n size=\"small\"\n label-width=\"180px\"\n class=\"demo-ruleForm\">\n <el-form-item label=\"提取方式\"\n prop=\"exMethod\">\n <el-radio v-model=\"ruleForm.exMethod\"\n label=\"1\">使用物流配送</el-radio>\n <br>\n\n <span>运费模版</span>\n <el-input size=\"small\"\n style='width:240px;margin:0px 12px'\n placeholder=\"\"></el-input>\n <div class='btn_xj'>\n <span>新建模板</span>\n </div>\n </el-form-item>\n <el-form-item label=\"预售设置\"\n prop=\"preSet\">\n <el-radio v-model=\"ruleForm.preSet\"\n label=\"1\">非预售</el-radio>\n <br>\n <el-radio v-model=\"ruleForm.preSet\"\n label=\"2\">全款预售</el-radio>\n </el-form-item>\n <el-form-item label=\"承诺发货时间\"\n prop=\"deliveryTime\">\n <p class=\"txt_small\">请严格按照承诺发货时间进行发货,超时发货会收到相关处罚,若当前商品报名预售活动,用户端展示的发货时间以预售发货时间为准</p>\n <el-select placeholder=\"请选择\"\n size=\"small\"\n style=\"width:240px\"\n v-model=\"ruleForm.deliveryTime\">\n <el-option label=\"10天\"\n value=\"1\">\n </el-option>\n <el-option label=\"13天\"\n value=\"2\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"售后服务\"\n prop=\"afterService\">\n <el-checkbox-group v-model=\"ruleForm.afterService\"\n size=\"small\">\n <el-checkbox label=\"提供发票\"></el-checkbox>\n <br>\n <el-checkbox label=\"保修服务\"></el-checkbox>\n <br>\n <el-checkbox label=\"7天无理由退换货该类目商品须支持【7天无理由退换货】服务\"></el-checkbox>\n </el-checkbox-group>\n </el-form-item>\n <el-form-item label=\"客服电话\"\n prop=\"hotline\">\n <el-input size=\"small\"\n v-model=\"ruleForm.hotline\"\n style='width:400px;'\n placeholder=\"仅支持录入手机号、座机及400-800电话\"></el-input>\n </el-form-item>\n <el-form-item label=\"商家备注\"\n prop=\"Remarks\">\n <el-input size=\"small\"\n v-model=\"ruleForm.Remarks\"\n maxlength=\"50\"\n show-word-limit\n style='width:400px;'\n placeholder=\"该备注仅商家可见\"></el-input>\n </el-form-item>\n <el-form-item label=\"上架时间\"\n prop=\"addedTime\">\n <el-radio v-model=\"ruleForm.addedTime\"\n label=\"1\">立即上架</el-radio>\n <br>\n <el-radio v-model=\"ruleForm.addedTime\"\n label=\"2\">定时上架</el-radio>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n data() {\n return {\n ruleForm: {\n exMethod: '1',\n preSet: '1',\n deliveryTime: '7天',\n afterService: [\n '7天无理由退换货该类目商品须支持【7天无理由退换货】服务',\n ],\n hotline: '',\n Remarks: '',\n addedTime: '1',\n },\n rules: {\n name: [\n {\n required: true,\n message: '请输入商品标题',\n trigger: 'blur',\n },\n {\n min: 0,\n max: 30,\n message: '长度在 0 到 30 个字符',\n trigger: 'blur',\n },\n ],\n },\n }\n },\n methods: {},\n}\n</script>\n<style scoped>\n.form_box {\n width: 800px;\n border: 1px solid #e8e8e8;\n /* height: 112px; */\n}\n.form_box .el-form {\n padding: 0 20px;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n}\n.box-title {\n padding: 15px 0px 24px 20px;\n}\n.box-title span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n.txt_small {\n font-size: 12px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #999999;\n}\n.add_commodity {\n width: 116px;\n text-align: center;\n height: 32px;\n line-height: 32px;\n background: #ffefe9;\n border-radius: 2px;\n border: 1px dashed #fb4702;\n}\n.add_commodity span {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #fb4702;\n}\n.btn_txt {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #fb4702;\n}\n.btn_xj {\n cursor: pointer;\n text-align: center;\n line-height: 32px;\n display: inline-block;\n width: 76px;\n height: 32px;\n background: #ffffff;\n border-radius: 4px;\n border: 1px solid #fb4702;\n}\n.btn_xj span {\n font-size: 14px;\n font-family: PingFangSC-Regular, PingFang SC;\n font-weight: 400;\n color: #fb4702;\n}\n</style>\n","<template>\n <div>\n <div class=\"box\">\n <div class=\"box_box\">\n <div class=\"box-body\">\n <div class=\"box-title\">\n <span>商品信息</span>\n </div>\n <el-tabs v-model=\"activeName\"\n @tab-click=\"handleClick\">\n <el-tab-pane label=\"基础信息\"\n name=\"first\">\n <production @handleClose='handleClose'></production>\n </el-tab-pane>\n <el-tab-pane label=\"图文信息\"\n name=\"second\">\n <Graphic></Graphic>\n </el-tab-pane>\n <el-tab-pane label=\"价格库存\"\n name=\"third\">\n <PriceInventory></PriceInventory>\n </el-tab-pane>\n <el-tab-pane label=\"服务与资质\"\n name=\"fourth\">\n <Service></Service>\n </el-tab-pane>\n </el-tabs>\n </div>\n </div>\n <div class=\"box_footer\">\n <div class=\"box_footer_content\">\n <div class=\"content-btn\">\n <el-button class=\"init-button\"\n @click=\"handleClose\">发布</el-button>\n <el-button class=\"dra-cancel\"\n style=\"margin-right:10px\">保存</el-button>\n <button class=\"dra-cancel\"\n @click=\"handleClose\">\n <span>取消</span>\n </button>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport production from './productInfo.vue'\nimport Graphic from './Graphic.vue'\nimport PriceInventory from './PriceInventory.vue'\nimport Service from './Service.vue'\n\nexport default {\n components: {\n production,\n Graphic,\n PriceInventory,\n Service,\n },\n data () {\n return {\n activeName: 'first',\n ruleForm: {\n name1: '',\n name: '',\n region: '',\n date1: '',\n date2: '',\n delivery: false,\n type: [],\n resource: '',\n resource1: '',\n desc: '',\n },\n rules: {\n name: [\n {\n required: true,\n message: '请输入商品标题',\n trigger: 'blur',\n },\n {\n min: 0,\n max: 30,\n message: '长度在 0 到 30 个字符',\n trigger: 'blur',\n },\n ],\n region: [\n {\n required: true,\n message: '请选择活动区域',\n trigger: 'change',\n },\n ],\n date1: [\n {\n type: 'date',\n required: true,\n message: '请选择日期',\n trigger: 'change',\n },\n ],\n date2: [\n {\n type: 'date',\n required: true,\n message: '请选择时间',\n trigger: 'change',\n },\n ],\n type: [\n {\n type: 'array',\n required: true,\n message: '请至少选择一个活动性质',\n trigger: 'change',\n },\n ],\n resource: [\n {\n required: true,\n message: '请选择活动资源',\n trigger: 'change',\n },\n ],\n desc: [\n {\n required: true,\n message: '请填写活动形式',\n trigger: 'blur',\n },\n ],\n },\n }\n },\n\n methods: {\n handleClose () {\n console.log(1)\n this.$emit('handleClose', false)\n },\n handleClick () { },\n cancel () { },\n },\n}\n</script>\n<style scoped>\n.box {\n /* 减去main的padding值 */\n /* width: calc(100% + 40px); */\n width: 100%;\n\n position: relative;\n /* top: -20px;\n left: -20px; */\n /* 减去头部距离 */\n height: calc(100vh - 80px);\n}\n.box-title {\n padding: 15px 0px 24px 20px;\n}\n.box-title span {\n font-size: 16px;\n font-family: PingFangSC-Medium, PingFang SC;\n font-weight: 500;\n color: #333333;\n line-height: 22px;\n}\n\n.box-body {\n margin: 20px;\n margin-bottom: 17px;\n background: #fff;\n overflow: auto;\n height: calc(100vh - 179px);\n}\n\n.box_footer {\n position: absolute;\n margin-top: 20px;\n width: 100%;\n bottom: 0;\n height: 81px;\n background: white;\n}\n.box_footer_content {\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n</style>\n"]}