998b93ac89b3648dccb730e0aaace38f.json 13 KB

1
  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_upload_list.vue?vue&type=style&index=0&id=656f8c5b&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\diyComponents\\c_upload_list.vue","mtime":1761185179964},{"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:DQouaWNvbmRyYWcyIHsNCiAgZm9udC1zaXplOiAyNnB4Ow0KICBjb2xvcjogI2Q4ZDhkODsNCn0NCi5ob3RfaW1ncyB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIC50aXRsZSB7DQogICAgcGFkZGluZzogMCAwIDEzcHggMDsNCiAgICBjb2xvcjogIzk5OTsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7DQogIH0NCiAgLmxpc3QtYm94IHsNCiAgICAuaXRlbSB7DQogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgIG1hcmdpbi10b3A6IDE0cHg7DQogICAgICAubW92ZS1pY29uIHsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgICBoZWlnaHQ6IDgwcHg7DQogICAgICAgIGN1cnNvcjogbW92ZTsNCiAgICAgICAgY29sb3I6ICNkOGQ4ZDg7DQogICAgICB9DQogICAgICAuaW1nLWJveCB7DQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgd2lkdGg6IDgwcHg7DQogICAgICAgIGhlaWdodDogODBweDsNCg0KICAgICAgICBpbWcgew0KICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgIGhlaWdodDogMTAwJTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLmluZm8gew0KICAgICAgICBmbGV4OiAxOw0KICAgICAgICBtYXJnaW4tbGVmdDogMjJweDsNCiAgICAgICAgLmluZm8taXRlbSB7DQogICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7DQogICAgICAgICAgd2lkdGg6IDMwMHB4Ow0KDQogICAgICAgICAgc3BhbiB7DQogICAgICAgICAgICB3aWR0aDogNDBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICB9DQogICAgICAgICAgLmlucHV0LWJveCB7DQogICAgICAgICAgICBmbGV4OiAxOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgLmRlbGVjdC1idG4gew0KICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgIHJpZ2h0OiAtMTJweDsNCiAgICAgICAgdG9wOiAtMTJweDsNCiAgICAgICAgY29sb3I6ICM5OTk5OTk7DQogICAgICAgIC5pY29uZm9udCB7DQogICAgICAgICAgZm9udC1zaXplOiAyOHB4Ow0KICAgICAgICAgIGNvbG9yOiAjOTk5Ow0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9DQogIC5hZGQtYnRuIHsNCiAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICB9DQp9DQoudXBsb2FkLWJveCB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDAlOw0KICBiYWNrZ3JvdW5kOiAjY2NjOw0KfQ0KLmljb25mb250IHsNCiAgY29sb3I6ICNkZGRkZGQ7DQogIGZvbnQtc2l6ZTogMjhweDsNCn0NCg=="},{"version":3,"sources":["c_upload_list.vue"],"names":[],"mappings":";AAiPA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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_upload_list.vue","sourceRoot":"src/components/diyComponents","sourcesContent":["<template>\r\n <div class=\"hot_imgs\">\r\n <div class=\"title\">\r\n {{ datas[name].title }}\r\n </div>\r\n <div class=\"list-box\">\r\n <draggable class=\"dragArea list-group\" :list=\"datas[name].list\" group=\"peoples\" handle=\".move-icon\">\r\n <div class=\"item\" v-for=\"(item, index) in datas[name].list\" :key=\"index\">\r\n <div class=\"move-icon\">\r\n <span class=\"iconfont icondrag2\"></span>\r\n </div>\r\n <div class=\"img-box\" v-db-click @click=\"modalPicTap('单选', index)\">\r\n <img :src=\"item.img\" alt=\"\" v-if=\"item.img\" />\r\n <div class=\"upload-box\" v-else>\r\n <i class=\"el-icon-picture-outline\" style=\"font-size: 24px\"></i>\r\n </div>\r\n <div v-if=\"!datas[name].isDelete\" class=\"delect-btn\" v-db-click @click.stop=\"bindDelete(item, index)\">\r\n <i class=\"el-icon-circle-close\" style=\"font-size: 24px\"></i>\r\n </div>\r\n </div>\r\n <div class=\"info\">\r\n <div class=\"info-item\" v-for=\"(infos, key) in item.info\" :key=\"key\">\r\n <div class=\"info-item\" v-if=\"infos.title === '链接'\">\r\n <span>{{ infos.title }}</span>\r\n <div class=\"input-box\" v-db-click>\r\n <el-input v-model=\"infos.value\" :placeholder=\"infos.tips\" :maxlength=\"infos.maxlength\">\r\n <i class=\"el-icon-link\" slot=\"suffix\" @click=\"getLink(index, key)\" />\r\n </el-input>\r\n </div>\r\n </div>\r\n <div v-else class=\"info-item\">\r\n <span>{{ infos.title }}</span>\r\n <div class=\"input-box\">\r\n <el-input\r\n v-model=\"infos.value\"\r\n :placeholder=\"infos.tips\"\r\n :maxlength=\"infos.maxlength\"\r\n width=\"250px\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </draggable>\r\n <div>\r\n <el-dialog\r\n :visible.sync=\"modalPic\"\r\n width=\"950px\"\r\n title=\"上传商品图\"\r\n :close-on-click-modal=\"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 v-if=\"datas[name]\">\r\n <div class=\"add-btn\" v-if=\"datas[name].list.length < datas[name].max || datas[name].max == ''\">\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=\"addBox\"\r\n >添加图片\r\n </el-button>\r\n </div>\r\n </template>\r\n <linkaddress ref=\"linkaddres\" @linkUrl=\"linkUrl\"></linkaddress>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport linkaddress from '@/components/linkaddress';\r\n\r\nimport uploadPictures from '@/components/uploadPictures';\r\nimport settings from '@/setting';\r\n\r\nimport vuedraggable from 'vuedraggable';\r\nexport default {\r\n name: 'c_upload_list',\r\n props: {\r\n name: {\r\n type: String,\r\n },\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 moduleName: {\r\n type: String,\r\n },\r\n },\r\n components: {\r\n linkaddress,\r\n uploadPictures,\r\n draggable: vuedraggable,\r\n },\r\n data() {\r\n return {\r\n defaults: {},\r\n menus: [],\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 keyIndex: 0,\r\n datas: this.configData[this.configNum],\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 getLink(index, key) {\r\n this.activeIndex = index;\r\n this.keyIndex = key;\r\n this.$refs.linkaddres.modals = true;\r\n },\r\n linkUrl(e) {\r\n this.datas[this.name].list[this.activeIndex].info[this.keyIndex].value = e;\r\n },\r\n addBox() {\r\n let val = {\r\n img: '',\r\n info: [\r\n {\r\n maxlength: 10,\r\n tips: '选填,不超过十个字',\r\n title: '标题',\r\n value: '',\r\n },\r\n {\r\n maxlength: 999,\r\n tips: '请填写链接',\r\n title: '链接',\r\n value: '',\r\n },\r\n ],\r\n };\r\n if (this.moduleName == 'swiperBg' || this.moduleName == 'menus') {\r\n this.configData[this.configNum][this.name].list.push(val);\r\n return;\r\n }\r\n if (this.configData[this.configNum][this.name].list.length == 0) {\r\n let uploadListData = this.$store.state.userInfo['uploadListData' + this.moduleName];\r\n this.configData[this.configNum][this.name].list.push(uploadListData);\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 // 点击图文封面\r\n modalPicTap(title, index) {\r\n this.activeIndex = index;\r\n this.modalPic = true;\r\n },\r\n // 添加自定义弹窗\r\n addCustomDialog(editorId) {\r\n window.UE.registerUI(\r\n 'test-dialog',\r\n function (editor, uiName) {\r\n let dialog = new window.UE.ui.Dialog({\r\n iframeUrl: settings.routePre + '/widget.images/index.html?fodder=dialog',\r\n editor: editor,\r\n name: uiName,\r\n title: '上传图片',\r\n cssRules: 'width:960px;height:550px;padding:20px;',\r\n });\r\n this.dialog = dialog;\r\n // 参考上面的自定义按钮\r\n var btn = new window.UE.ui.Button({\r\n name: 'dialog-button',\r\n title: '上传图片',\r\n cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -726px -77px;`,\r\n onclick: function () {\r\n // 渲染dialog\r\n dialog.render();\r\n dialog.open();\r\n },\r\n });\r\n\r\n return btn;\r\n },\r\n 37,\r\n );\r\n },\r\n // 获取图片信息\r\n getPic(pc) {\r\n this.$nextTick(() => {\r\n this.configData[this.configNum][this.name].list[this.activeIndex].img = pc.att_dir;\r\n this.modalPic = false;\r\n });\r\n },\r\n // 删除\r\n bindDelete(item, index) {\r\n if (this.configData[this.configNum][this.name].list.length == 1) {\r\n let lastObj = this.configData[this.configNum][this.name].list[0];\r\n this.$store.commit('userInfo/uploadList' + this.moduleName, lastObj);\r\n }\r\n this.configData[this.configNum][this.name].list.splice(index, 1);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.icondrag2 {\r\n font-size: 26px;\r\n color: #d8d8d8;\r\n}\r\n.hot_imgs {\r\n margin-bottom: 20px;\r\n .title {\r\n padding: 0 0 13px 0;\r\n color: #999;\r\n font-size: 12px;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\r\n }\r\n .list-box {\r\n .item {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n margin-top: 14px;\r\n .move-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 30px;\r\n height: 80px;\r\n cursor: move;\r\n color: #d8d8d8;\r\n }\r\n .img-box {\r\n position: relative;\r\n width: 80px;\r\n height: 80px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n }\r\n .info {\r\n flex: 1;\r\n margin-left: 22px;\r\n .info-item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 10px;\r\n width: 300px;\r\n\r\n span {\r\n width: 40px;\r\n font-size: 13px;\r\n }\r\n .input-box {\r\n flex: 1;\r\n }\r\n }\r\n }\r\n .delect-btn {\r\n position: absolute;\r\n right: -12px;\r\n top: -12px;\r\n color: #999999;\r\n .iconfont {\r\n font-size: 28px;\r\n color: #999;\r\n }\r\n }\r\n }\r\n }\r\n .add-btn {\r\n margin-top: 10px;\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: 100%;\r\n height: 100%;\r\n background: #ccc;\r\n}\r\n.iconfont {\r\n color: #dddddd;\r\n font-size: 28px;\r\n}\r\n</style>\r\n"]}]}