| 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\\mobileConfigRight\\c_tab_list.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\components\\mobileConfigRight\\c_tab_list.vue","mtime":1761185179996},{"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\\babel-loader\\lib\\index.js","mtime":456789000000},{"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:DQppbXBvcnQgdnVlZHJhZ2dhYmxlIGZyb20gJ3Z1ZWRyYWdnYWJsZSc7DQppbXBvcnQgbGlua2FkZHJlc3MgZnJvbSAnQC9jb21wb25lbnRzL2xpbmthZGRyZXNzJzsNCmltcG9ydCB7IGNhc2NhZGVyTGlzdEFwaSB9IGZyb20gJ0AvYXBpL3Byb2R1Y3QnOw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnY190YWJfbGlzdCcsDQogIHByb3BzOiB7DQogICAgY29uZmlnT2JqOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgfSwNCiAgICBjb25maWdObWU6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICB9LA0KICAgIGluZGV4OiB7DQogICAgICB0eXBlOiBudWxsLA0KICAgIH0sDQogIH0sDQogIGNvbXBvbmVudHM6IHsNCiAgICBsaW5rYWRkcmVzcywNCiAgICBkcmFnZ2FibGU6IHZ1ZWRyYWdnYWJsZSwNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgZGVmYXVsdHM6IHt9LA0KICAgICAgY29uZmlnRGF0YToge30sDQogICAgICBpdGVtT2JqOiB7fSwNCiAgICAgIGFjdGl2ZUluZGV4OiAwLA0KICAgICAgdHJlZVNlbGVjdDogW10sDQogICAgICBwcm9wczogeyBtdWx0aXBsZTogZmFsc2UsIGNoZWNrU3RyaWN0bHk6IGZhbHNlLCBlbWl0UGF0aDogZmFsc2UgfSwNCiAgICB9Ow0KICB9LA0KICBtb3VudGVkKCkgew0KICAgIHRoaXMuZ29vZHNDYXRlZ29yeSgpOw0KICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgIHRoaXMuZGVmYXVsdHMgPSB0aGlzLmNvbmZpZ09iajsNCiAgICAgIHRoaXMuY29uZmlnRGF0YSA9IHRoaXMuY29uZmlnT2JqW3RoaXMuY29uZmlnTm1lXTsNCiAgICB9KTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICBjb25maWdPYmo6IHsNCiAgICAgIGhhbmRsZXIoblZhbCwgb1ZhbCkgew0KICAgICAgICB0aGlzLmRlZmF1bHRzID0gblZhbDsNCiAgICAgICAgdGhpcy5jb25maWdEYXRhID0gblZhbFt0aGlzLmNvbmZpZ05tZV07DQogICAgICB9LA0KICAgICAgZGVlcDogdHJ1ZSwNCiAgICB9LA0KICB9LA0KICBtZXRob2RzOiB7DQogICAgZ29vZHNDYXRlZ29yeSgpIHsNCiAgICAgIGNhc2NhZGVyTGlzdEFwaSgwKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy50cmVlU2VsZWN0ID0gcmVzLmRhdGE7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICAvL+WVhuWTgeWIhuexuw0KICAgIHNsaWRlckNoYW5nZShlKSB7DQogICAgICBjb25zb2xlLmxvZyhlKTsNCiAgICAgIC8vIHRoaXMuY29uZmlnRGF0YS5saXN0W3RoaXMuY29uZmlnRGF0YS50YWJDdXJdLnNlbGVjdENvbmZpZy5hY3RpdmVWYWx1ZSA9IGU7DQogICAgICAvLyB0aGlzLiRlbWl0KCdnZXRDb25maWcnLCB7IG5hbWU6ICdjYXNjYWRlcicsIHZhbHVlczogZSB9KTsNCiAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0W3RoaXMuYWN0aXZlSW5kZXhdLmNsYXNzUGFnZS5pZCA9IGU7DQogICAgICBsZXQgbmFtZSA9IHRoaXMudHJlZVNlbGVjdC5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09IGUpLmxhYmVsOw0KICAgICAgdGhpcy5jb25maWdEYXRhLmxpc3RbdGhpcy5hY3RpdmVJbmRleF0uY2xhc3NQYWdlLm5hbWUgPSBuYW1lOw0KICAgIH0sDQogICAgbGlua1VybChlKSB7DQogICAgICBjb25zb2xlLmxvZyhlLCB0aGlzLmNvbmZpZ0RhdGEubGlzdFt0aGlzLmFjdGl2ZUluZGV4XS5kYXRhVHlwZS50YWJWYWwsICcxMTEnKTsNCiAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEubGlzdFt0aGlzLmFjdGl2ZUluZGV4XS5kYXRhVHlwZS50YWJWYWwpIHsNCiAgICAgICAgbGV0IG9iaiA9IGUuc3BsaXQoJz8nKVsxXTsNCiAgICAgICAgbGV0IG9iajIgPSBvYmouc3BsaXQoJyYnKTsNCiAgICAgICAgdGhpcy5jb25maWdEYXRhLmxpc3RbdGhpcy5hY3RpdmVJbmRleF0uY2xhc3NQYWdlLm5hbWUgPSBvYmoyWzFdLnNwbGl0KCc9JylbMV07DQogICAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0W3RoaXMuYWN0aXZlSW5kZXhdLmNsYXNzUGFnZS5pZCA9IG9iajJbMF0uc3BsaXQoJz0nKVsxXTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGxldCBvYmogPSBlLnNwbGl0KCc/JylbMV07DQogICAgICAgIGxldCBvYmoyID0gb2JqLnNwbGl0KCcmJyk7DQogICAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0W3RoaXMuYWN0aXZlSW5kZXhdLm1pY3JvUGFnZS5uYW1lID0gb2JqMlsxXS5zcGxpdCgnPScpWzFdOw0KICAgICAgICB0aGlzLmNvbmZpZ0RhdGEubGlzdFt0aGlzLmFjdGl2ZUluZGV4XS5taWNyb1BhZ2UuaWQgPSBvYmoyWzBdLnNwbGl0KCc9JylbMV07DQogICAgICB9DQogICAgfSwNCiAgICBnZXRMaW5rKGluZGV4KSB7DQogICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7DQogICAgICBsZXQgb2JqID0ge307DQogICAgICBpZiAodGhpcy5jb25maWdEYXRhLmxpc3RbdGhpcy5hY3RpdmVJbmRleF0uZGF0YVR5cGUudGFiVmFsKSB7DQogICAgICAgIG9iaiA9IHsNCiAgICAgICAgICBpZDogOCwNCiAgICAgICAgICBwaWQ6IDIsDQogICAgICAgICAgdHlwZTogJ3Byb2R1Y3RfY2F0ZWdvcnknLA0KICAgICAgICB9Ow0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgb2JqID0gew0KICAgICAgICAgIGlkOiA5LA0KICAgICAgICAgIHBpZDogMSwNCiAgICAgICAgICB0eXBlOiAnc3BlY2lhbCcsDQogICAgICAgIH07DQogICAgICB9DQogICAgICB0aGlzLiRyZWZzLmxpbmthZGRyZXMuaGFuZGxlQ2hlY2tDaGFuZ2Uob2JqKTsNCiAgICAgIHRoaXMuJHJlZnMubGlua2FkZHJlcy5tb2RhbHMgPSB0cnVlOw0KICAgIH0sDQogICAgYWRkSG90VHh0KCkgew0KICAgICAgaWYgKHRoaXMuY29uZmlnRGF0YS5saXN0Lmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGxldCBzdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTsNCiAgICAgICAgdGhpcy5pdGVtT2JqID0gSlNPTi5wYXJzZShzdG9yYWdlLmdldEl0ZW0oJ2l0ZW1PYmonKSk7DQogICAgICAgIHRoaXMuaXRlbU9iai5kYXRhVHlwZS50YWJWYWwgPSAwOw0KICAgICAgICB0aGlzLml0ZW1PYmoubWljcm9QYWdlLm5hbWUgPSAnJzsNCiAgICAgICAgdGhpcy5pdGVtT2JqLmNsYXNzUGFnZS5uYW1lID0gJyc7DQogICAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0LnB1c2godGhpcy5pdGVtT2JqKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGxldCBvYmogPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnRGF0YS5saXN0W3RoaXMuY29uZmlnRGF0YS5saXN0Lmxlbmd0aCAtIDFdKSk7DQogICAgICAgIG9iai5kYXRhVHlwZS50YWJWYWwgPSAwOw0KICAgICAgICBvYmoubWljcm9QYWdlLm5hbWUgPSAnJzsNCiAgICAgICAgb2JqLmNsYXNzUGFnZS5uYW1lID0gJyc7DQogICAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0LnB1c2gob2JqKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8vIOWIoOmZpOaVsOe7hA0KICAgIGJpbmREZWxldGUoaW5kZXgpIHsNCiAgICAgIGlmICh0aGlzLmNvbmZpZ0RhdGEubGlzdC5sZW5ndGggPT0gMSkgew0KICAgICAgICBsZXQgaXRlbU9iaiA9IHRoaXMuY29uZmlnRGF0YS5saXN0WzBdOw0KICAgICAgICB0aGlzLml0ZW1PYmogPSBpdGVtT2JqOw0KICAgICAgICBsZXQgc3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7DQogICAgICAgIHN0b3JhZ2Uuc2V0SXRlbSgnaXRlbU9iaicsIEpTT04uc3RyaW5naWZ5KGl0ZW1PYmopKTsNCiAgICAgIH0NCiAgICAgIHRoaXMuY29uZmlnRGF0YS5saXN0LnNwbGljZShpbmRleCwgMSk7DQogICAgfSwNCiAgfSwNCn07DQo="},{"version":3,"sources":["c_tab_list.vue"],"names":[],"mappings":";AAsFA;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;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_list.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\">\r\n <div class=\"move-icon\">\r\n <span class=\"iconfont-diy iconxingzhuangjiehe\"></span>\r\n </div>\r\n <div>\r\n <div class=\"con-item\">\r\n <span>{{ item.text.title }}</span>\r\n <div>\r\n <el-input\r\n v-model=\"item.text.val\"\r\n :placeholder=\"item.text.pla\"\r\n :maxlength=\"item.text.max\"\r\n show-word-limit\r\n />\r\n </div>\r\n </div>\r\n <div class=\"con-item\">\r\n <span>{{ item.dataType.title }}</span>\r\n <div>\r\n <el-radio-group v-model=\"item.dataType.tabVal\">\r\n <el-radio :label=\"key\" v-for=\"(radio, key) in item.dataType.tabList\" :key=\"key\">\r\n <span>{{ radio.name }}</span>\r\n </el-radio>\r\n </el-radio-group>\r\n </div>\r\n </div>\r\n <div class=\"con-item\">\r\n <span>{{ item.dataType.tabList[item.dataType.tabVal].name }}</span>\r\n <div>\r\n <el-input v-if=\"item.dataType.tabVal == 0\" v-model=\"item.microPage.name\" placeholder=\"选择页面\">\r\n <i class=\"el-icon-link\" slot=\"suffix\" @click=\"getLink(index)\" />\r\n </el-input>\r\n <el-cascader\r\n v-else-if=\"item.dataType.tabVal == 1\"\r\n @change=\"sliderChange\"\r\n @focus=\"\r\n (e) => {\r\n activeIndex = index;\r\n }\r\n \"\r\n placeholder=\"请选择分类\"\r\n size=\"mini\"\r\n v-model=\"item.classPage.id\"\r\n :options=\"treeSelect\"\r\n :props=\"props\"\r\n filterable\r\n clearable\r\n >\r\n </el-cascader>\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\" v-if=\"configData.list.length < configData.max\">\r\n <el-button class=\"btn\" type=\"primary\" ghost> <span class=\"iconfont iconjiahao\"></span>添加 </el-button>\r\n </div>\r\n </div>\r\n <!-- <linkaddress\r\n ref=\"linkaddres\"\r\n :linkType=\"1\"\r\n :fromType=\"'diyPage'\"\r\n :isCateTree=\"!['homeComb', 'tabNav'].includes(defaults.name)\"\r\n @linkUrl=\"linkUrl\"\r\n ></linkaddress> -->\r\n <linkaddress\r\n ref=\"linkaddres\"\r\n :linkType=\"1\"\r\n :fromType=\"'diyPage'\"\r\n :isCateTree=\"!['homeComb', 'tabNav'].includes(defaults.name)\"\r\n @linkUrl=\"linkUrl\"\r\n ></linkaddress>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport vuedraggable from 'vuedraggable';\r\nimport linkaddress from '@/components/linkaddress';\r\nimport { cascaderListApi } from '@/api/product';\r\nexport default {\r\n name: 'c_tab_list',\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 linkaddress,\r\n draggable: vuedraggable,\r\n },\r\n data() {\r\n return {\r\n defaults: {},\r\n configData: {},\r\n itemObj: {},\r\n activeIndex: 0,\r\n treeSelect: [],\r\n props: { multiple: false, checkStrictly: false, emitPath: false },\r\n };\r\n },\r\n mounted() {\r\n this.goodsCategory();\r\n this.$nextTick(() => {\r\n this.defaults = this.configObj;\r\n this.configData = this.configObj[this.configNme];\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 },\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n goodsCategory() {\r\n cascaderListApi(0)\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 //商品分类\r\n sliderChange(e) {\r\n console.log(e);\r\n // this.configData.list[this.configData.tabCur].selectConfig.activeValue = e;\r\n // this.$emit('getConfig', { name: 'cascader', values: e });\r\n this.configData.list[this.activeIndex].classPage.id = e;\r\n let name = this.treeSelect.find((item) => item.id == e).label;\r\n this.configData.list[this.activeIndex].classPage.name = name;\r\n },\r\n linkUrl(e) {\r\n console.log(e, this.configData.list[this.activeIndex].dataType.tabVal, '111');\r\n if (this.configData.list[this.activeIndex].dataType.tabVal) {\r\n let obj = e.split('?')[1];\r\n let obj2 = obj.split('&');\r\n this.configData.list[this.activeIndex].classPage.name = obj2[1].split('=')[1];\r\n this.configData.list[this.activeIndex].classPage.id = obj2[0].split('=')[1];\r\n } else {\r\n let obj = e.split('?')[1];\r\n let obj2 = obj.split('&');\r\n this.configData.list[this.activeIndex].microPage.name = obj2[1].split('=')[1];\r\n this.configData.list[this.activeIndex].microPage.id = obj2[0].split('=')[1];\r\n }\r\n },\r\n getLink(index) {\r\n this.activeIndex = index;\r\n let obj = {};\r\n if (this.configData.list[this.activeIndex].dataType.tabVal) {\r\n obj = {\r\n id: 8,\r\n pid: 2,\r\n type: 'product_category',\r\n };\r\n } else {\r\n obj = {\r\n id: 9,\r\n pid: 1,\r\n type: 'special',\r\n };\r\n }\r\n this.$refs.linkaddres.handleCheckChange(obj);\r\n this.$refs.linkaddres.modals = true;\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 this.itemObj.dataType.tabVal = 0;\r\n this.itemObj.microPage.name = '';\r\n this.itemObj.classPage.name = '';\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 obj.dataType.tabVal = 0;\r\n obj.microPage.name = '';\r\n obj.classPage.name = '';\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 },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n::v-deep .ivu-input {\r\n font-size: 12px !important;\r\n}\r\n\r\n::v-deep .ivu-input-wrapper {\r\n width: 240px;\r\n}\r\n\r\n::v-deep .ivu-input-word-count {\r\n color: #bbbbbb;\r\n}\r\n\r\n::v-deep .ivu-input-icon {\r\n color: #bbbbbb;\r\n}\r\n::v-deep .el-radio{\r\n margin-bottom: 1px !important;\r\n}\r\n.c_product {\r\n padding: 0 15px 20px 15px;\r\n\r\n .list-box {\r\n .item {\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n margin-top: 23px;\r\n padding: 18px 20px 18px 0;\r\n background-color: #f9f9f9;\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: 50px;\r\n cursor: move;\r\n }\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: 75px;\r\n font-size: 12px;\r\n color: #999999;\r\n }\r\n }\r\n }\r\n\r\n .add-btn {\r\n margin-top: 21px;\r\n\r\n .btn {\r\n width: 100%;\r\n height: 36px;\r\n border-color: #eeeeee;\r\n color: #666666;\r\n\r\n .iconfont {\r\n font-size: 11px;\r\n margin-right: 5px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.title {\r\n font-size: 12px;\r\n color: #999;\r\n}\r\n\r\n.iconfont-diy {\r\n color: #dddddd;\r\n font-size: 16px;\r\n}\r\n</style>\r\n"]}]}
|