| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\components\\mobileConfigRight\\c_promotion.vue?vue&type=style&index=0&id=0c152250&scoped=true&lang=scss","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\components\\mobileConfigRight\\c_promotion.vue","mtime":1761614938968},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\css-loader\\index.js","mtime":1761614929364},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1761614937403},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\postcss-loader\\src\\index.js","mtime":1761614935133},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1761614936391},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQo6OnYtZGVlcCAuZWwtY2FzY2FkZXIgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KOjp2LWRlZXAgLmVsLWNhc2NhZGVyX19zZWFyY2gtaW5wdXQgew0KICBtYXJnaW4tbGVmdDogOHB4Ow0KfQ0KDQo6OnYtZGVlcCAuaXZ1LXJhZGlvLXdyYXBwZXIgew0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCi5ib3ggew0KICB3aWR0aDogNjRweDsNCiAgaGVpZ2h0OiA2NHB4Ow0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KICAucGljdHJ1ZSB7DQogICAgYmFja2dyb3VuZDogdXJsKC4uLy4uL2Fzc2V0cy9pbWFnZXMvdHJhbnNwYXJlbnRzLmpwZykgbm8tcmVwZWF0Ow0KICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDEwMCU7DQoNCiAgICAuaWNvbmZvbnQgew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgcmlnaHQ6IC0xMnB4Ow0KICAgICAgdG9wOiAtMTlweDsNCiAgICAgIGZvbnQtc2l6ZTogMjRweDsNCiAgICAgIGNvbG9yOiAjY2NjY2NjOw0KICAgIH0NCiAgfQ0KDQogIC51cGxvYWQtYm94IHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgd2lkdGg6IDY0cHg7DQogICAgaGVpZ2h0OiA2NHB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlZWVlOw0KDQogICAgLml2dS1pY29uIHsNCiAgICAgIGNvbG9yOiAjY2NjOw0KICAgIH0NCiAgfQ0KDQogIGltZyB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgaGVpZ2h0OiAxMDAlOw0KICAgIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgfQ0KfQ0KDQouZ29vZHMtYm94IHsNCiAgLnRpdGxlIHsNCiAgICBjb2xvcjogIzk5OTk5OTsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgd2lkdGg6IDY3cHg7DQogICAgbWFyZ2luLXRvcDogMjNweDsNCiAgfQ0KDQogIC5saXN0IHsNCiAgICB3aWR0aDogMjM2cHg7DQogIH0NCg0KICAubGlzdC1ncm91cCB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBmbGV4LXdyYXA6IHdyYXA7DQogIH0NCg0KICAuYWRkLWl0ZW0gew0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KDQogICAgLmljb25mb250LWRpeSB7DQogICAgICBmb250LXNpemU6IDI1cHg7DQogICAgICBjb2xvcjogI2Q4ZDhkODsNCiAgICB9DQogIH0NCg0KICAuaXRlbXMgew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB3aWR0aDogNjRweDsNCiAgICBoZWlnaHQ6IDY0cHg7DQogICAgbWFyZ2luLWJvdHRvbTogMTZweDsNCiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7DQogICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsNCiAgICBib3JkZXItcmFkaXVzOiAzcHg7DQoNCiAgICBpbWcgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgfQ0KDQogICAgLmljb25kZWxfMSB7DQogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICByaWdodDogLTEwcHg7DQogICAgICB0b3A6IC0xNnB4Ow0KICAgICAgY29sb3I6ICNjY2NjY2M7DQogICAgICBmb250LXNpemU6IDIycHg7DQogICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgfQ0KICB9DQp9DQoNCi5pdnUtaW5wdXQtbnVtYmVyIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCi5sYWJlbElucHV0IHsNCiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGVlMjsNCiAgd2lkdGg6IDEwMCU7DQogIHBhZGRpbmc6IDAgOHB4Ow0KICBib3JkZXItcmFkaXVzOiA1cHg7DQogIG1pbi1oZWlnaHQ6IDMwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7DQogIGN1cnNvcjogcG9pbnRlcjsNCg0KICAuc3BhbiB7DQogICAgY29sb3I6ICNjN2M3Yzc7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICB9DQoNCiAgLmljb254aWF5aSB7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICB9DQp9DQoNCi5jb250ZXIgew0KICB3aWR0aDogMzM1cHg7DQogIGJhY2tncm91bmQ6ICNmOWY5Zjk7DQogIHBhZGRpbmc6IDIwcHggMTVweCA0cHggMTVweDsNCiAgbWFyZ2luLXRvcDogMjBweDsNCn0NCg0KLnR4dF90YWIgew0KICBtYXJnaW4tdG9wOiAyMHB4Ow0KfQ0KDQouY19yb3ctaXRlbSB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQoNCiAgLnNsaWRlci1ib3ggew0KICAgIHBhZGRpbmctbGVmdDogM3B4Ow0KDQogICAgJi5vbiB7DQogICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7DQogICAgfQ0KICB9DQoNCiAgLmxhYmVsIHsNCiAgICBjb2xvcjogIzk5OTk5OTsNCiAgICBmb250LXNpemU6IDEycHg7DQogIH0NCg0KICAuY19sYWJlbCB7DQogICAgY29sb3I6ICM5OTk5OTk7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICB9DQoNCiAgLmNvbG9yLWJveCB7DQogICAgLy8gd2lkdGg6IDI0M3B4Ow0KICB9DQp9DQoNCi5yb3ctaXRlbSB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCn0NCg0KLmljb25mb250IHsNCiAgZm9udC1zaXplOiAxOHB4Ow0KfQ0KDQo6OnYtZGVlcCAuaXZ1LWlucHV0IHsNCiAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7DQp9DQoNCi5jX3Byb2R1Y3Qgew0KICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICBwYWRkaW5nOiAwIDE1cHg7DQoNCiAgLmxpc3QtYm94IHsNCiAgICAuaXRlbSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBtYXJnaW4tdG9wOiAyMHB4Ow0KICAgICAgcGFkZGluZzogMjBweCAxNXB4IDIwcHggMDsNCiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM4LCAyMzgsIDIzOCwgMSk7DQogICAgICBib3JkZXItcmFkaXVzOiAzcHg7DQoNCiAgICAgIC5kZWxldGUgew0KICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgIHJpZ2h0OiAtMTBweDsNCiAgICAgICAgdG9wOiAtMTBweDsNCiAgICAgICAgY29sb3I6ICNjY2M7DQogICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAubW92ZS1pY29uIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICB3aWR0aDogNDBweDsNCiAgICAgIGN1cnNvcjogbW92ZTsNCg0KICAgICAgLmljb254aW5nemh1YW5namllaGUgew0KICAgICAgICBjb2xvcjogI2RkZDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAuY29udGVudCB7DQogICAgICBmbGV4OiAxOw0KDQogICAgICAuY29uLWl0ZW0gew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KDQogICAgICAgICY6bGFzdC1jaGlsZCB7DQogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsNCiAgICAgICAgfQ0KDQogICAgICAgIHNwYW4gew0KICAgICAgICAgIHdpZHRoOiA0NXB4Ow0KICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgICAgICBjb2xvcjogIzk5OTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KDQogIC5hZGQtYnRuIHsNCiAgICBtYXJnaW4tdG9wOiAxOHB4Ow0KICB9DQp9DQoNCi50aXRsZSB7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgY29sb3I6ICNiYmJiYmI7DQp9DQoNCi5pY29uZHJhZzIgew0KICBjb2xvcjogI2RkZGRkZDsNCiAgZm9udC1zaXplOiAzOHB4Ow0KfQ0K"},{"version":3,"sources":["c_promotion.vue"],"names":[],"mappings":";AA8bA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"c_promotion.vue","sourceRoot":"src/components/mobileConfigRight","sourcesContent":["<template>\r\n <div class=\"c_product\" v-if=\"configData\">\r\n <div class=\"title\">{{ configData.title }}</div>\r\n <div class=\"list-box\">\r\n <draggable class=\"dragArea list-group\" :list=\"configData.list\" group=\"peoples\" handle=\".move-icon\">\r\n <div class=\"item\" v-for=\"(item, index) in configData.list\" :key=\"index\" @click=\"activeBtn(index)\">\r\n <!-- v-model=\"configData.tabCur\" -->\r\n <div class=\"acea-row\">\r\n <div class=\"move-icon\">\r\n <span class=\"iconfont-diy iconxingzhuangjiehe\"></span>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"con-item\" v-for=\"(list, key) in item.chiild\" :key=\"key\" v-if=\"key < (tabIndex == 0 ? 2 : 1)\">\r\n <span>{{ list.title }}</span>\r\n <div style=\"width: 100%\">\r\n <el-input v-model=\"list.val\" :placeholder=\"list.pla\" :maxlength=\"list.max\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"acea-row row-right\" v-if=\"configData.tabCur == index\">\r\n <div class=\"conter\">\r\n <div class=\"c_row-item\" v-if=\"tabIndex == 4\">\r\n <div class=\"c_label\">上传图片</div>\r\n <div class=\"color-box\">\r\n <div class=\"box\" @click=\"modalPicTap('单选')\">\r\n <div class=\"pictrue acea-row row-center-wrapper\" v-if=\"item.image\">\r\n <img :src=\"item.image\" alt=\"\" />\r\n <div class=\"iconfont icondel_1\" @click.stop=\"bindPicDelete\"></div>\r\n </div>\r\n <div class=\"upload-box\" v-else><i class=\"el-icon-plus\" /></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"c_row-item\">\r\n <el-col class=\"c_label\"> 选择方式 </el-col>\r\n <el-col class=\"color-box\">\r\n <el-select v-model=\"item.tabVal\" placeholder=\"请选择\" @change=\"tabChange\">\r\n <el-option\r\n v-for=\"(itemn, indexn) in typeList\"\r\n :value=\"itemn.activeValue\"\r\n :key=\"indexn\"\r\n :label=\"itemn.title\"\r\n ></el-option>\r\n </el-select>\r\n </el-col>\r\n </div>\r\n <div class=\"goods-box acea-row\" v-if=\"item.tabVal == 1\">\r\n <div class=\"title\">选择商品</div>\r\n <div class=\"list\">\r\n <draggable class=\"dragArea list-group\" :list=\"item.goodsList.list\" group=\"peoples\">\r\n <div\r\n class=\"items\"\r\n v-for=\"(goods, gIndex) in item.goodsList.list\"\r\n :key=\"gIndex\"\r\n v-if=\"item.goodsList.list.length\"\r\n >\r\n <img :src=\"goods.image\" alt=\"\" />\r\n <span class=\"iconfont-diy icondel_1\" @click.stop=\"bindGoodDelete(gIndex)\"></span>\r\n </div>\r\n <div class=\"add-item items\" @click=\"openGoods(index)\">\r\n <span class=\"iconfont-diy iconaddto\"></span>\r\n </div>\r\n </draggable>\r\n </div>\r\n </div>\r\n <div v-else>\r\n <div class=\"c_row-item\" v-if=\"item.tabVal == 2\">\r\n <el-col class=\"label\" :span=\"4\">品牌名称</el-col>\r\n <el-col :span=\"19\" class=\"slider-box\">\r\n <el-cascader\r\n @change=\"brandChange\"\r\n placeholder=\"请选择品牌\"\r\n size=\"mini\"\r\n v-model=\"item.brandConfig.brandVal\"\r\n :options=\"brandData\"\r\n :props=\"props\"\r\n filterable\r\n clearable\r\n >\r\n </el-cascader>\r\n </el-col>\r\n </div>\r\n <div class=\"c_row-item\" v-else-if=\"item.tabVal == 3\">\r\n <el-col class=\"label\" :span=\"4\">商品分类</el-col>\r\n <el-col :span=\"19\" class=\"slider-box\">\r\n <el-cascader\r\n @change=\"sliderChange\"\r\n placeholder=\"请选择分类\"\r\n size=\"mini\"\r\n v-model=\"item.selectConfig.activeValue\"\r\n :options=\"treeSelect\"\r\n :props=\"props\"\r\n filterable\r\n clearable\r\n >\r\n </el-cascader>\r\n </el-col>\r\n </div>\r\n <div class=\"c_row-item\" v-else>\r\n <el-col class=\"label\" :span=\"4\">商品标签</el-col>\r\n <el-col :span=\"19\" class=\"slider-box\">\r\n <div\r\n class=\"labelInput acea-row row-between-wrapper\"\r\n @click=\"openStoreLabel(item.goodsLabel.list, index)\"\r\n >\r\n <div style=\"width: 90%\">\r\n <div v-if=\"item.goodsLabel.list.length\">\r\n <el-tag\r\n v-for=\"(j, jindex) in item.goodsLabel.list\"\r\n :key=\"jindex\"\r\n @on-close=\"closeStoreLabel(j)\"\r\n >{{ j.label_name }}</el-tag\r\n >\r\n </div>\r\n <span class=\"span\" v-else>选择商品标签</span>\r\n </div>\r\n <div class=\"iconfont iconxiayi\"></div>\r\n </div>\r\n </el-col>\r\n </div>\r\n <div class=\"c_row-item\">\r\n <el-col class=\"label\" :span=\"4\">\r\n <span>商品数量</span>\r\n </el-col>\r\n <el-col :span=\"19\" class=\"slider-box on\">\r\n <!-- sliderChange -->\r\n <el-slider\r\n v-model=\"item.numConfig.val\"\r\n show-input\r\n @change=\"radioChange()\"\r\n :max=\"100\"\r\n :min=\"1\"\r\n :step=\"1\"\r\n ></el-slider>\r\n </el-col>\r\n </div>\r\n <div class=\"c_row-item\">\r\n <el-col class=\"c_label\"> 商品排序 </el-col>\r\n <el-col class=\"color-box\">\r\n <el-radio-group v-model=\"item.goodsSort\" @input=\"radioChange()\">\r\n <el-radio :label=\"0\">\r\n <span>综合</span>\r\n </el-radio>\r\n <el-radio :label=\"1\">\r\n <span>销量</span>\r\n </el-radio>\r\n <el-radio :label=\"2\">\r\n <span>价格</span>\r\n </el-radio>\r\n </el-radio-group>\r\n </el-col>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"delete\" @click.stop=\"bindDelete(index)\">\r\n <i class=\"el-icon-circle-close\" style=\"font-size: 20px\" />\r\n </div>\r\n </div>\r\n </draggable>\r\n </div>\r\n <div v-if=\"configData.list\">\r\n <div class=\"add-btn\" @click=\"addHotTxt\">\r\n <el-button style=\"width: 100%; height: 40px\">+ 添加</el-button>\r\n </div>\r\n </div>\r\n <!-- 商品标签 -->\r\n <el-dialog\r\n :visible.sync=\"storeLabelShow\"\r\n scrollable\r\n title=\"选择商品标签\"\r\n :closable=\"true\"\r\n width=\"540\"\r\n :footer-hide=\"true\"\r\n :mask-closable=\"false\"\r\n >\r\n <storeLabelList\r\n v-if=\"storeLabelShow\"\r\n ref=\"storeLabel\"\r\n @activeData=\"activeStoreData\"\r\n @close=\"storeLabelClose\"\r\n ></storeLabelList>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"modals\" title=\"商品列表\" class=\"paymentFooter\" width=\"900\">\r\n <goods-list\r\n ref=\"goodslist\"\r\n :ischeckbox=\"true\"\r\n :isdiy=\"true\"\r\n isType\r\n :selectIds=\"selectIds\"\r\n @getProductId=\"getProductId\"\r\n v-if=\"modals\"\r\n ></goods-list>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"modalPic\" width=\"960px\" :title=\"configData.header ? configData.header : '上传图片'\">\r\n <uploadPictures\r\n :isChoice=\"isChoice\"\r\n @getPic=\"getPic\"\r\n :gridBtn=\"gridBtn\"\r\n :gridPic=\"gridPic\"\r\n v-if=\"modalPic\"\r\n ></uploadPictures>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport vuedraggable from 'vuedraggable';\r\nimport storeLabelList from '@/components/storeLabelList';\r\nimport goodsList from '@/components/goodsList';\r\nimport uploadPictures from '@/components/uploadPictures';\r\nimport { cascaderListApi } from '@/api/product';\r\nexport default {\r\n name: 'c_promotion',\r\n props: {\r\n configObj: {\r\n type: Object,\r\n },\r\n configNme: {\r\n type: String,\r\n },\r\n index: {\r\n type: null,\r\n },\r\n },\r\n components: {\r\n draggable: vuedraggable,\r\n storeLabelList,\r\n goodsList,\r\n uploadPictures,\r\n },\r\n data() {\r\n return {\r\n props: { multiple: true, checkStrictly: true, emitPath: false },\r\n defaults: {},\r\n configData: {},\r\n itemObj: {},\r\n storeLabelShow: false,\r\n modals: false,\r\n modalPic: false,\r\n isChoice: '单选',\r\n gridBtn: {\r\n xl: 4,\r\n lg: 8,\r\n md: 8,\r\n sm: 8,\r\n xs: 8,\r\n },\r\n gridPic: {\r\n xl: 6,\r\n lg: 8,\r\n md: 12,\r\n sm: 12,\r\n xs: 12,\r\n },\r\n typeList: [\r\n {\r\n activeValue: 1,\r\n title: '指定商品',\r\n },\r\n {\r\n activeValue: 3,\r\n title: '指定分类',\r\n },\r\n {\r\n activeValue: 4,\r\n title: '商品标签',\r\n },\r\n ],\r\n brandData: [],\r\n treeSelect: [],\r\n tabIndex: 1,\r\n selectIds: [],\r\n };\r\n },\r\n mounted() {\r\n this.$nextTick(() => {\r\n this.defaults = this.configObj;\r\n this.configData = this.configObj[this.configNme];\r\n this.goodsCategory();\r\n });\r\n },\r\n watch: {\r\n configObj: {\r\n handler(nVal, oVal) {\r\n this.defaults = nVal;\r\n this.configData = nVal[this.configNme];\r\n this.tabIndex = nVal.styleConfig.tabVal;\r\n // this.selectIds = nVal[this.configNme].goodsList.ids || [];\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n // 点击图文封面\r\n modalPicTap(title) {\r\n this.modalPic = true;\r\n },\r\n bindPicDelete() {\r\n this.configData.list[this.configData.tabCur].image = '';\r\n },\r\n // 获取图片信息\r\n getPic(pc) {\r\n this.$nextTick(() => {\r\n this.configData.list[this.configData.tabCur].image = pc.att_dir;\r\n this.modalPic = false;\r\n });\r\n },\r\n getBrandList() {\r\n brandList()\r\n .then((res) => {\r\n this.brandData = res.data;\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n goodsCategory() {\r\n cascaderListApi(1)\r\n .then((res) => {\r\n this.treeSelect = res.data;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n openGoods() {\r\n this.modals = true;\r\n },\r\n //对象数组去重;\r\n unique(arr) {\r\n const res = new Map();\r\n return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));\r\n },\r\n getProductId(data) {\r\n this.modals = false;\r\n let list = this.configData.list[this.configData.tabCur].goodsList.list.concat(data);\r\n this.configData.list[this.configData.tabCur].goodsList.list = this.unique(list);\r\n },\r\n cancel() {\r\n this.modals = false;\r\n },\r\n bindGoodDelete(index) {\r\n this.configData.list[this.configData.tabCur].goodsList.list.splice(index, 1);\r\n },\r\n openStoreLabel(row, index) {\r\n this.storeLabelShow = true;\r\n this.$nextTick(() => {\r\n this.$refs.storeLabel.storeLabel(JSON.parse(JSON.stringify(row)));\r\n });\r\n },\r\n closeStoreLabel(label) {\r\n let list = this.configData.list[this.configData.tabCur].goodsLabel.list;\r\n let index = list.indexOf(list.filter((d) => d.id == label.id)[0]);\r\n list.splice(index, 1);\r\n this.getLabelId(list);\r\n },\r\n activeStoreData(storeDataLabel) {\r\n this.storeLabelShow = false;\r\n this.configData.list[this.configData.tabCur].goodsLabel.list = storeDataLabel;\r\n this.getLabelId(storeDataLabel);\r\n },\r\n getLabelId(storeDataLabel) {\r\n let storeActiveIds = [];\r\n storeDataLabel.forEach((item) => {\r\n storeActiveIds.push(item.id);\r\n });\r\n this.configData.list[this.configData.tabCur].goodsLabel.activeValue = storeActiveIds;\r\n this.$emit('getConfig', { name: 'goodsLabel' });\r\n },\r\n // 标签弹窗关闭\r\n storeLabelClose() {\r\n this.storeLabelShow = false;\r\n },\r\n addHotTxt() {\r\n if (this.configData.list.length == 0) {\r\n let storage = window.localStorage;\r\n this.itemObj = JSON.parse(storage.getItem('itemObj'));\r\n if (this.itemObj.link) {\r\n this.itemObj.link.activeVal = 0;\r\n }\r\n this.itemObj.chiild[0].val = '首发新品';\r\n this.itemObj.chiild[1].val = '最新出炉';\r\n this.itemObj.tabVal = 0;\r\n this.itemObj.selectConfig.activeValue = [];\r\n this.itemObj.goodsLabel.activeValue = [];\r\n this.itemObj.goodsLabel.list = [];\r\n this.itemObj.goodsSort = 0;\r\n this.itemObj.numConfig.val = 6;\r\n this.itemObj.goodsList.list = [];\r\n this.itemObj.productList.list = [];\r\n this.configData.list.push(this.itemObj);\r\n } else {\r\n let obj = JSON.parse(JSON.stringify(this.configData.list[this.configData.list.length - 1]));\r\n if (obj.chiild[0].empty) {\r\n obj.chiild[0].val = '';\r\n obj.chiild[1].val = '';\r\n }\r\n obj.tabVal = 1;\r\n obj.selectConfig.activeValue = [];\r\n obj.goodsLabel.activeValue = [];\r\n obj.goodsLabel.list = [];\r\n obj.goodsSort = 0;\r\n obj.numConfig.val = 6;\r\n obj.goodsList.list = [];\r\n obj.productList.list = [];\r\n this.configData.list.push(obj);\r\n }\r\n },\r\n // 删除数组\r\n bindDelete(index) {\r\n if (this.configData.list.length == 1) {\r\n let itemObj = this.configData.list[0];\r\n this.itemObj = itemObj;\r\n let storage = window.localStorage;\r\n storage.setItem('itemObj', JSON.stringify(itemObj));\r\n }\r\n this.configData.list.splice(index, 1);\r\n this.configData.tabCur = 0;\r\n this.$emit('getConfig', { name: 'delete', indexs: 0 });\r\n },\r\n activeBtn(index) {\r\n this.configData.tabCur = index;\r\n // this.$emit('getConfig', { name: 'product', indexs: index })\r\n },\r\n radioChange(e) {\r\n this.$emit('getConfig', { name: 'promotion', values: e });\r\n },\r\n // 品牌\r\n brandChange() {\r\n this.$emit('getConfig', { name: 'brands' });\r\n },\r\n //商品分类\r\n sliderChange(e) {\r\n this.configData.list[this.configData.tabCur].selectConfig.activeValue = e;\r\n this.$emit('getConfig', { name: 'cascader', values: e });\r\n },\r\n tabChange(e) {\r\n this.$emit('getConfig', { name: 'selectType', values: e });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n::v-deep .el-cascader {\r\n width: 100%;\r\n}\r\n\r\n::v-deep .el-cascader__search-input {\r\n margin-left: 8px;\r\n}\r\n\r\n::v-deep .ivu-radio-wrapper {\r\n margin-right: 25px;\r\n}\r\n\r\n.box {\r\n width: 64px;\r\n height: 64px;\r\n position: relative;\r\n border-radius: 3px;\r\n\r\n .pictrue {\r\n background: url(../../assets/images/transparents.jpg) no-repeat;\r\n background-size: 100% 100%;\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .iconfont {\r\n position: absolute;\r\n right: -12px;\r\n top: -19px;\r\n font-size: 24px;\r\n color: #cccccc;\r\n }\r\n }\r\n\r\n .upload-box {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 64px;\r\n height: 64px;\r\n border-radius: 3px;\r\n border: 1px solid #eeeeee;\r\n\r\n .ivu-icon {\r\n color: #ccc;\r\n }\r\n }\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 3px;\r\n }\r\n}\r\n\r\n.goods-box {\r\n .title {\r\n color: #999999;\r\n font-size: 12px;\r\n width: 67px;\r\n margin-top: 23px;\r\n }\r\n\r\n .list {\r\n width: 236px;\r\n }\r\n\r\n .list-group {\r\n display: flex;\r\n flex-wrap: wrap;\r\n }\r\n\r\n .add-item {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 10px;\r\n\r\n .iconfont-diy {\r\n font-size: 25px;\r\n color: #d8d8d8;\r\n }\r\n }\r\n\r\n .items {\r\n position: relative;\r\n width: 64px;\r\n height: 64px;\r\n margin-bottom: 16px;\r\n margin-right: 12px;\r\n border: 1px solid #eee;\r\n border-radius: 3px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .icondel_1 {\r\n position: absolute;\r\n right: -10px;\r\n top: -16px;\r\n color: #cccccc;\r\n font-size: 22px;\r\n cursor: pointer;\r\n }\r\n }\r\n}\r\n\r\n.ivu-input-number {\r\n width: 100%;\r\n}\r\n\r\n.labelInput {\r\n border: 1px solid #dcdee2;\r\n width: 100%;\r\n padding: 0 8px;\r\n border-radius: 5px;\r\n min-height: 30px;\r\n background-color: #fff;\r\n cursor: pointer;\r\n\r\n .span {\r\n color: #c7c7c7;\r\n font-size: 12px;\r\n }\r\n\r\n .iconxiayi {\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.conter {\r\n width: 335px;\r\n background: #f9f9f9;\r\n padding: 20px 15px 4px 15px;\r\n margin-top: 20px;\r\n}\r\n\r\n.txt_tab {\r\n margin-top: 20px;\r\n}\r\n\r\n.c_row-item {\r\n margin-bottom: 20px;\r\n\r\n .slider-box {\r\n padding-left: 3px;\r\n\r\n &.on {\r\n padding-left: 10px;\r\n }\r\n }\r\n\r\n .label {\r\n color: #999999;\r\n font-size: 12px;\r\n }\r\n\r\n .c_label {\r\n color: #999999;\r\n font-size: 12px;\r\n }\r\n\r\n .color-box {\r\n // width: 243px;\r\n }\r\n}\r\n\r\n.row-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.iconfont {\r\n font-size: 18px;\r\n}\r\n\r\n::v-deep .ivu-input {\r\n font-size: 12px !important;\r\n}\r\n\r\n.c_product {\r\n margin-bottom: 20px;\r\n padding: 0 15px;\r\n\r\n .list-box {\r\n .item {\r\n position: relative;\r\n margin-top: 20px;\r\n padding: 20px 15px 20px 0;\r\n border: 1px solid rgba(238, 238, 238, 1);\r\n border-radius: 3px;\r\n\r\n .delete {\r\n position: absolute;\r\n right: -10px;\r\n top: -10px;\r\n color: #ccc;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .move-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 40px;\r\n cursor: move;\r\n\r\n .iconxingzhuangjiehe {\r\n color: #ddd;\r\n }\r\n }\r\n\r\n .content {\r\n flex: 1;\r\n\r\n .con-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n span {\r\n width: 45px;\r\n font-size: 12px;\r\n color: #999;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .add-btn {\r\n margin-top: 18px;\r\n }\r\n}\r\n\r\n.title {\r\n font-size: 12px;\r\n color: #bbbbbb;\r\n}\r\n\r\n.icondrag2 {\r\n color: #dddddd;\r\n font-size: 38px;\r\n}\r\n</style>\r\n"]}]}
|