| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\diyComponents\\c_tab_bar.vue?vue&type=style&index=0&id=22c02da8&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\diyComponents\\c_tab_bar.vue","mtime":1761185179963},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQoudGFiQmFycyAuYm94LWl0ZW06bGFzdC1jaGlsZCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQp9DQoudGFiQmFycyB7DQogIC50aXRsZSB7DQogICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA1KTsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgY29sb3I6ICM5OTk7DQogIH0NCiAgLmJveC1pdGVtIHsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBtYXJnaW4tdG9wOiAxNXB4Ow0KICAgIHBhZGRpbmc6IDIwcHggMzBweCAyMHB4IDA7DQogICAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDsNCiAgICBib3JkZXItcmFkaXVzOiAzcHg7DQogICAgLmRlbC1ib3ggew0KICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgcmlnaHQ6IC0xM3B4Ow0KICAgICAgdG9wOiAtMThweDsNCiAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgIC5pY29uZm9udCB7DQogICAgICAgIGNvbG9yOiAjOTk5Ow0KICAgICAgICBmb250LXNpemU6IDMwcHg7DQogICAgICB9DQogICAgfQ0KICAgIC5sZWZ0LXRvb2wgew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgIHdpZHRoOiA3MnB4Ow0KICAgICAgLmljb25mb250IHsNCiAgICAgICAgY29sb3I6ICM5OTk7DQogICAgICAgIGZvbnQtc2l6ZTogMzZweDsNCiAgICAgICAgY3Vyc29yOiBtb3ZlOw0KICAgICAgfQ0KICAgIH0NCiAgICAucmlnaHQtd3JhcHBlciB7DQogICAgICBmbGV4OiAxOw0KICAgICAgLmltZy13cmFwcGVyIHsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgLmltZy1pdGVtIHsNCiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgd2lkdGg6IDgwcHg7DQogICAgICAgICAgaGVpZ2h0OiA4MHB4Ow0KICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsNCiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgaW1nIHsNCiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgfQ0KICAgICAgICAgIC5lbXB0eS1pbWcgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7DQogICAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgICBjb2xvcjogI2JmYmZiZjsNCiAgICAgICAgICAgIC5pY29uZm9udCB7DQogICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgICAgLnR4dCB7DQogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICBsZWZ0OiAwOw0KICAgICAgICAgICAgYm90dG9tOiAwOw0KICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICBoZWlnaHQ6IDIycHg7DQogICAgICAgICAgICBsaW5lLWhlaWdodDogMjJweDsNCiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsNCiAgICAgICAgICAgIGNvbG9yOiAjZmZmOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLmNfcm93LWl0ZW0gew0KICAgICAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICAuYWRkLWJ0biB7DQogICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDQwcHg7DQogIH0NCn0NCg=="},{"version":3,"sources":["c_tab_bar.vue"],"names":[],"mappings":";AA6KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"c_tab_bar.vue","sourceRoot":"src/components/diyComponents","sourcesContent":["<template>\r\n <div class=\"tabBars\">\r\n <div class=\"title\">{{ datas[name].title }}</div>\r\n <draggable class=\"dragArea list-group\" :list=\"datas[name].list\" group=\"peoples\" handle=\".iconfont\">\r\n <div class=\"box-item\" v-for=\"(item, index) in datas[name].list\" :key=\"index\">\r\n <div class=\"left-tool\">\r\n <span class=\"iconfont icondrag2\"></span>\r\n </div>\r\n <div class=\"right-wrapper\">\r\n <div class=\"img-wrapper\">\r\n <div class=\"img-item\" v-for=\"(img, j) in item.imgList\" v-db-click @click=\"modalPicTap('单选', index, j)\">\r\n <img :src=\"img\" alt=\"\" v-if=\"img\" />\r\n <p class=\"txt\" v-if=\"img\">{{ j == 0 ? '选中' : '未选中' }}</p>\r\n <div class=\"empty-img\" v-else>\r\n <span class=\"iconfont iconjiahao\"></span>\r\n <p>{{ j == 0 ? '选中' : '未选中' }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"c_row-item\">\r\n <el-col class=\"label\" :span=\"4\"> 名称 </el-col>\r\n <el-col :span=\"19\" class=\"slider-box\">\r\n <el-input v-model=\"item.name\" placeholder=\"选填不超过10个字\" />\r\n </el-col>\r\n </div>\r\n <div class=\"c_row-item\">\r\n <el-col class=\"label\" :span=\"4\"> 链接 </el-col>\r\n <el-col :span=\"19\" class=\"slider-box\">\r\n <el-input v-model=\"item.link\" placeholder=\"选填不超过10个字\" />\r\n </el-col>\r\n </div>\r\n </div>\r\n <div class=\"del-box\" v-db-click @click=\"deleteMenu(index)\">\r\n <span class=\"iconfont iconcha\"></span>\r\n </div>\r\n </div>\r\n </draggable>\r\n <div class=\"add-btn\" v-if=\"datas[name].list.length < 5\">\r\n <el-button\r\n type=\"primary\"\r\n ghost\r\n style=\"width: 100%; height: 40px; border-color: var(--prev-color-primary); color: var(--prev-color-primary)\"\r\n v-db-click\r\n @click=\"addMenu\"\r\n >添加图文导航\r\n </el-button>\r\n </div>\r\n <div>\r\n <el-dialog\r\n :visible.sync=\"modalPic\"\r\n width=\"950px\"\r\n scrollable\r\n footer-hide\r\n :show-close=\"true\"\r\n title=\"上传商品图\"\r\n :mask-closable=\"false\"\r\n :z-index=\"888\"\r\n >\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 </div>\r\n</template>\r\n\r\n<script>\r\nimport vuedraggable from 'vuedraggable';\r\nimport uploadPictures from '@/components/uploadPictures';\r\nexport default {\r\n name: 'c_tab_bar',\r\n props: {\r\n name: {\r\n type: String,\r\n },\r\n configData: {\r\n type: null,\r\n },\r\n configNum: {\r\n type: Number | String,\r\n default: 'default',\r\n },\r\n },\r\n components: {\r\n uploadPictures,\r\n draggable: vuedraggable,\r\n },\r\n data() {\r\n return {\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 activeIndex: 0,\r\n isSelect: 0,\r\n datas: this.configData[this.configNum],\r\n lastObj: {},\r\n };\r\n },\r\n mounted() {},\r\n watch: {\r\n configData: {\r\n handler(nVal, oVal) {\r\n this.datas = nVal[this.configNum];\r\n },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n // 添加模块\r\n addMenu() {\r\n if (this.configData[this.configNum][this.name].list.length == 0) {\r\n this.configData[this.configNum][this.name].list.push(this.lastObj);\r\n } else {\r\n let obj = JSON.parse(\r\n JSON.stringify(\r\n this.configData[this.configNum][this.name].list[this.configData[this.configNum][this.name].list.length - 1],\r\n ),\r\n );\r\n this.configData[this.configNum][this.name].list.push(obj);\r\n }\r\n },\r\n deleteMenu(index) {\r\n this.$msgbox({\r\n title: '提示',\r\n message: '是否确定删除该菜单',\r\n showCancelButton: true,\r\n cancelButtonText: '取消',\r\n confirmButtonText: '删除',\r\n iconClass: 'el-icon-warning',\r\n confirmButtonClass: 'btn-custom-cancel',\r\n })\r\n .then(() => {\r\n if (this.configData[this.configNum][this.name].list.length == 1) {\r\n this.lastObj = this.configData[this.configNum][this.name].list[0];\r\n }\r\n this.configData[this.configNum][this.name].list.splice(index, 1);\r\n })\r\n .catch(() => {});\r\n },\r\n // 点击图文封面\r\n modalPicTap(title, index, select) {\r\n this.activeIndex = index;\r\n this.modalPic = true;\r\n this.isSelect = select;\r\n },\r\n // 获取图片信息\r\n getPic(pc) {\r\n this.$nextTick(() => {\r\n this.configData[this.configNum][this.name].list[this.activeIndex].imgList[this.isSelect] = pc.att_dir;\r\n this.modalPic = false;\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.tabBars .box-item:last-child {\r\n margin-bottom: 20px;\r\n}\r\n.tabBars {\r\n .title {\r\n margin-bottom: 10px;\r\n padding-bottom: 10px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\r\n font-size: 12px;\r\n color: #999;\r\n }\r\n .box-item {\r\n position: relative;\r\n display: flex;\r\n margin-top: 15px;\r\n padding: 20px 30px 20px 0;\r\n border: 1px solid #dddddd;\r\n border-radius: 3px;\r\n .del-box {\r\n position: absolute;\r\n right: -13px;\r\n top: -18px;\r\n cursor: pointer;\r\n .iconfont {\r\n color: #999;\r\n font-size: 30px;\r\n }\r\n }\r\n .left-tool {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 72px;\r\n .iconfont {\r\n color: #999;\r\n font-size: 36px;\r\n cursor: move;\r\n }\r\n }\r\n .right-wrapper {\r\n flex: 1;\r\n .img-wrapper {\r\n display: flex;\r\n .img-item {\r\n position: relative;\r\n width: 80px;\r\n height: 80px;\r\n margin-right: 20px;\r\n cursor: pointer;\r\n img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n .empty-img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background: #f7f7f7;\r\n font-size: 12px;\r\n color: #bfbfbf;\r\n .iconfont {\r\n font-size: 16px;\r\n }\r\n }\r\n .txt {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: 22px;\r\n line-height: 22px;\r\n text-align: center;\r\n background: rgba(0, 0, 0, 0.4);\r\n color: #fff;\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n .c_row-item {\r\n margin-top: 10px;\r\n }\r\n }\r\n }\r\n .add-btn {\r\n margin-bottom: 20px;\r\n width: 100%;\r\n height: 40px;\r\n }\r\n}\r\n</style>\r\n"]}]}
|