cb819cc14da295eaea6cff4c78dde8ff.json 11 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\app\\routine\\download\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\app\\routine\\download\\index.vue","mtime":1761614939006},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"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:DQppbXBvcnQgeyByb3V0aW5lRG93bmxvYWQsIHJvdXRpbmVJbmZvIH0gZnJvbSAnQC9hcGkvYXBwJzsNCmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7DQppbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQC91dGlscy92YWxpZGF0ZSc7DQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdyb3V0aW5lVGVtcGxhdGUnLA0KICBmaWx0ZXJzOiB7DQogICAgZm9ybWF0RGF0ZSh0aW1lKSB7DQogICAgICBpZiAodGltZSAhPT0gMCkgew0KICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRpbWUgKiAxMDAwKTsNCiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUoZGF0ZSwgJ3l5eXktTU0tZGQgaGg6bW0nKTsNCiAgICAgIH0NCiAgICB9LA0KICB9LA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBncmlkOiB7DQogICAgICAgIHhsOiA3LA0KICAgICAgICBsZzogNywNCiAgICAgICAgbWQ6IDEyLA0KICAgICAgICBzbTogMjQsDQogICAgICAgIHhzOiAyNCwNCiAgICAgIH0sDQogICAgICBpZnJhbWVVcmw6IGAke2xvY2F0aW9uLm9yaWdpbn0vcGFnZXMvaW5kZXgvaW5kZXg/bWRUeXBlPWlmcmFtZVdpbmRvd2AsDQogICAgICBpc19saXZlOiAxLA0KICAgICAgcGFnZURhdGE6IHsNCiAgICAgICAgY29kZTogJycsDQogICAgICAgIHJvdXRpbmVfbmFtZTogJycsDQogICAgICAgIGhlbHA6ICcnLA0KICAgICAgICBhcHBJZDogJzEnLA0KICAgICAgfSwNCiAgICB9Ow0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHJvdXRpbmVJbmZvKCkudGhlbigocmVzKSA9PiB7DQogICAgICB0aGlzLnBhZ2VEYXRhID0gcmVzLmRhdGE7DQogICAgfSk7DQogIH0sDQogIHdhdGNoOiB7DQogICAgJHJvdXRlKHRvLCBmcm9tKSB7fSwNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICAuLi5tYXBTdGF0ZSgnbWVkaWEnLCBbJ2lzTW9iaWxlJ10pLA0KICAgIGxhYmVsV2lkdGgoKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/IHVuZGVmaW5lZCA6ICc4MHB4JzsNCiAgICB9LA0KICAgIGxhYmVsUG9zaXRpb24oKSB7DQogICAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/ICd0b3AnIDogJ3JpZ2h0JzsNCiAgICB9LA0KICB9LA0KICBtZXRob2RzOiB7DQogICAgZG93bkxvYWQoKSB7DQogICAgICByb3V0aW5lRG93bmxvYWQoew0KICAgICAgICBpc19saXZlOiB0aGlzLmlzX2xpdmUsDQogICAgICB9KQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgd2luZG93Lm9wZW4ocmVzLmRhdGEudXJsKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoZXJyLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgZG93bkxvYWRDb2RlKHVybCkgew0KICAgICAgaWYgKCF1cmwpIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+aaguaXoOWwj+eoi+W6j+eggScpOw0KICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7DQogICAgICBpbWFnZS5zcmMgPSB1cmw7DQogICAgICAvLyDop6PlhrPot6jln58gQ2FudmFzIOaxoeafk+mXrumimA0KICAgICAgaW1hZ2Uuc2V0QXR0cmlidXRlKCdjcm9zc09yaWdpbicsICdhbm9ueW1vdXMnKTsNCiAgICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOw0KICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsNCiAgICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDsNCiAgICAgICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOw0KICAgICAgICB2YXIgdXJsID0gY2FudmFzLnRvRGF0YVVSTCgpOyAvL+W+l+WIsOWbvueJh+eahGJhc2U2NOe8lueggeaVsOaNrg0KICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsgLy8g55Sf5oiQ5LiA5LiqYeWFg+e0oA0KICAgICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKTsgLy8g5Yib5bu65LiA5Liq5Y2V5Ye75LqL5Lu2DQogICAgICAgIGEuZG93bmxvYWQgPSBuYW1lIHx8ICdwaG90byc7IC8vIOiuvue9ruWbvueJh+WQjeensA0KICAgICAgICBhLmhyZWYgPSB1cmw7IC8vIOWwhueUn+aIkOeahFVSTOiuvue9ruS4umEuaHJlZuWxnuaApw0KICAgICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOyAvLyDop6blj5Fh55qE5Y2V5Ye75LqL5Lu2DQogICAgICB9Ow0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAmEA;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":"index.vue","sourceRoot":"src/pages/app/routine/download","sourcesContent":["<template>\r\n <div>\r\n <!-- <div class=\"i-layout-page-header header-title\">\r\n <span class=\"ivu-page-header-title\">{{ $route.meta.title }}</span>\r\n </div> -->\r\n <pages-header ref=\"pageHeader\" :title=\"$route.meta.title\"></pages-header>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt mt16\">\r\n <div class=\"flex-wrapper\">\r\n <!-- :src=\"iframeUrl\" -->\r\n <div>\r\n <iframe class=\"iframe-box\" :src=\"iframeUrl\" frameborder=\"0\" ref=\"iframe\"></iframe>\r\n <div class=\"mask\"></div>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"content\">\r\n <div class=\"content-box title\">\r\n <div class=\"line\"></div>\r\n <div class=\"right title\">小程序设置</div>\r\n </div>\r\n <el-alert v-if=\"!pageData.appId && !pageData.code\">\r\n <template slot=\"title\">\r\n 您尚未配置小程序信息,请<router-link :to=\"{ path: $routeProStr + '/setting/routine_config/2/7' }\"\r\n >立即设置</router-link\r\n ></template\r\n >\r\n </el-alert>\r\n <div class=\"content-box\">\r\n <div class=\"left\">小程序名称:</div>\r\n <div class=\"right\">{{ pageData.routine_name || '未命名' }}</div>\r\n </div>\r\n <div class=\"content-box\">\r\n <div class=\"left\">小程序码:</div>\r\n <div class=\"right\">\r\n <el-button type=\"primary\" v-db-click @click=\"downLoadCode(pageData.code)\">下载小程序码</el-button>\r\n </div>\r\n </div>\r\n <div class=\"content-box\">\r\n <div class=\"left\">小程序包:</div>\r\n <div class=\"right\">\r\n <span>是否已开通小程序直播</span>\r\n <el-radio-group class=\"rad\" size=\"large\" v-model=\"is_live\">\r\n <el-radio :label=\"0\">未开通</el-radio>\r\n <el-radio :label=\"1\">已开通</el-radio>\r\n </el-radio-group>\r\n </div>\r\n </div>\r\n <div class=\"content-box last\">\r\n <div class=\"left\"></div>\r\n <div class=\"right\">\r\n <div>\r\n 请谨慎选择是否有开通小程序直播功能,否则将影响小程序的发布 可前往\r\n <a :href=\"pageData.help\" target=\"_blank\">帮助文档</a>\r\n 查看如何开通直播功能\r\n </div>\r\n\r\n <el-button class=\"mt10\" type=\"primary\" v-db-click @click=\"downLoad()\">下载小程序包</el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { routineDownload, routineInfo } from '@/api/app';\r\nimport { mapState } from 'vuex';\r\nimport { formatDate } from '@/utils/validate';\r\nexport default {\r\n name: 'routineTemplate',\r\n filters: {\r\n formatDate(time) {\r\n if (time !== 0) {\r\n let date = new Date(time * 1000);\r\n return formatDate(date, 'yyyy-MM-dd hh:mm');\r\n }\r\n },\r\n },\r\n data() {\r\n return {\r\n grid: {\r\n xl: 7,\r\n lg: 7,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n iframeUrl: `${location.origin}/pages/index/index?mdType=iframeWindow`,\r\n is_live: 1,\r\n pageData: {\r\n code: '',\r\n routine_name: '',\r\n help: '',\r\n appId: '1',\r\n },\r\n };\r\n },\r\n created() {\r\n routineInfo().then((res) => {\r\n this.pageData = res.data;\r\n });\r\n },\r\n watch: {\r\n $route(to, from) {},\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '80px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n methods: {\r\n downLoad() {\r\n routineDownload({\r\n is_live: this.is_live,\r\n })\r\n .then((res) => {\r\n window.open(res.data.url);\r\n })\r\n .catch((err) => {\r\n this.$message.warning(err.msg);\r\n });\r\n },\r\n downLoadCode(url) {\r\n if (!url) return this.$message.warning('暂无小程序码');\r\n var image = new Image();\r\n image.src = url;\r\n // 解决跨域 Canvas 污染问题\r\n image.setAttribute('crossOrigin', 'anonymous');\r\n image.onload = function () {\r\n var canvas = document.createElement('canvas');\r\n canvas.width = image.width;\r\n canvas.height = image.height;\r\n var context = canvas.getContext('2d');\r\n context.drawImage(image, 0, 0, image.width, image.height);\r\n var url = canvas.toDataURL(); //得到图片的base64编码数据\r\n var a = document.createElement('a'); // 生成一个a元素\r\n var event = new MouseEvent('click'); // 创建一个单击事件\r\n a.download = name || 'photo'; // 设置图片名称\r\n a.href = url; // 将生成的URL设置为a.href属性\r\n a.dispatchEvent(event); // 触发a的单击事件\r\n };\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.template_sp_box {\r\n padding: 5px 0;\r\n box-sizing: border-box;\r\n}\r\n.template_sp {\r\n display: block;\r\n padding: 2px 0;\r\n box-sizing: border-box;\r\n}\r\n.flex-wrapper {\r\n display: flex;\r\n border-radius: 10px;\r\n}\r\n.iframe-box {\r\n width: 312px;\r\n height: 550px;\r\n border-radius: 10px;\r\n}\r\n.ivu-mt {\r\n height: 600px;\r\n}\r\n.content {\r\n padding: 0 20px;\r\n}\r\n.content > .title {\r\n padding-bottom: 26px;\r\n}\r\n.content-box {\r\n display: flex;\r\n align-items: center;\r\n margin: 20px 20px 0 20px;\r\n color: #333;\r\n}\r\n.content-box.last {\r\n margin-top: 0;\r\n color: #999999;\r\n}\r\n.line {\r\n width: 3px;\r\n height: 16px;\r\n background-color: var(--prev-color-primary);\r\n margin-right: 11px;\r\n}\r\n.content-box .title {\r\n font-size: 16px;\r\n font-weight: bold;\r\n}\r\n.content-box > span {\r\n color: #f5222d;\r\n font-size: 20px;\r\n}\r\n.content-box .left {\r\n width: 100px;\r\n text-align: right;\r\n}\r\n.content-box .right {\r\n width: 400px;\r\n}\r\n.rad {\r\n margin-left: 20px;\r\n}\r\n.mask {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 312px;\r\n height: 550px;\r\n background-color: rgba(0, 0, 0, 0);\r\n}\r\n</style>\r\n"]}]}