| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\setting\\devise\\list.vue?vue&type=style&index=0&id=6204fe98&lang=scss&scoped=true","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\setting\\devise\\list.vue","mtime":1761614939053},{"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:DQouaXZ1LW10IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsNCiAgcGFkZGluZy1ib3R0b206IDUwcHg7DQp9DQoubm8td2FycCB7DQogIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7DQp9DQo6OnYtZGVlcCAuZWwtY2FyZF9fYm9keSB7DQogIHBhZGRpbmc6IDQwcHg7DQp9DQouYm50IHsNCiAgd2lkdGg6IDgwcHggIWltcG9ydGFudDsNCn0NCi5pZnJhbWUtY29sIHsNCiAgd2lkdGg6IDM3NXB4Ow0KICBtaW4td2lkdGg6IDM3NXB4Ow0KICBoZWlnaHQ6IDY1MHB4Ow0KICBtYXJnaW4tcmlnaHQ6IDMwcHg7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCi5pZnJhbWUtYm94IHsNCiAgd2lkdGg6IDEwMCU7DQogIGhlaWdodDogMTAwJTsNCiAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsNCn0NCi50YXJnZXQtYWRkIHsNCiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCn0NCi5tYXNrIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBsZWZ0OiAwOw0KICB3aWR0aDogMTAwJTsNCiAgdG9wOiAwOw0KICBoZWlnaHQ6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7DQp9DQo6OnYtZGVlcCAuaXZ1LW1lbnUtdmVydGljYWwgLml2dS1tZW51LWl0ZW0sDQouaXZ1LW1lbnUtdmVydGljYWwgLml2dS1tZW51LXN1Ym1lbnUtdGl0bGUgew0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQo6OnYtZGVlcCAuaS1sYXlvdXQtcGFnZS1oZWFkZXIgew0KICBkaXNwbGF5OiBmbGV4Ow0KICBhbGlnbi1pdGVtczogY2VudGVyOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQo6OnYtZGVlcCAuaXZ1LXBhZ2UtaGVhZGVyIHsNCiAgYm9yZGVyLWJvdHRvbTogdW5zZXQ7DQogIHBvc2l0aW9uOiBmaXhlZDsNCiAgei1pbmRleDogOTsNCiAgd2lkdGg6IDEwMCU7DQp9DQo6OnYtZGVlcCAuaXZ1LW1lbnUtdmVydGljYWwgLml2dS1tZW51LWl0ZW0tZ3JvdXAtdGl0bGUgew0KICBkaXNwbGF5OiBub25lOw0KfQ0KOjp2LWRlZXAgLml2dS1tZW51LXZlcnRpY2FsLml2dS1tZW51LWxpZ2h0OmFmdGVyIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCjo6di1kZWVwIC5pdnUtbWVudSB7DQogIHotaW5kZXg6IDAgIWltcG9ydGFudDsNCn0NCjo6di1kZWVwIC5pdnUtcm93IHsNCiAgZGlzcGxheTogZmxleDsNCn0NCi50YWJsZS1ib3ggew0KICBmbGV4OiAxOw0KfQ0KLmNvZGUgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQouUVJwaWMgew0KICB3aWR0aDogMTYwcHg7DQogIGhlaWdodDogMTYwcHg7DQoNCiAgaW1nIHsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDEwMCU7DQogIH0NCn0NCi5sZWZ0LXdyYXBwZXIgew0KICBwYWRkaW5nOiAyMHB4IDAgMCAyMHB4Ow0KICBiYWNrZ3JvdW5kOiAjZmZmOw0KICBib3JkZXItcmlnaHQ6IHVuc2V0Ow0KfQ0KLnRyZWVfdGl0IHsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBsaW5lLWhlaWdodDogNTBweDsNCiAgZm9udC1zaXplOiAxNXB4Ow0KICBjb2xvcjogIzMzMzsNCiAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWVmNTsNCn0NCi5waWNDb24gew0KICB3aWR0aDogMjgwcHg7DQogIGhlaWdodDogNTEwcHg7DQogIGJhY2tncm91bmQ6ICNmZmZmZmY7DQogIGJvcmRlcjogMXB4IHNvbGlkICNlZWVlZWU7DQogIGJvcmRlci1yYWRpdXM6IDI1cHg7DQogIC5waWN0cnVlIHsNCiAgICB3aWR0aDogMjUwcHg7DQogICAgaGVpZ2h0OiA0MTdweDsNCiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlZWVlOw0KICAgIG9wYWNpdHk6IDE7DQogICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICBtYXJnaW46IDMwcHggYXV0byAwIGF1dG87DQoNCiAgICBpbWcgew0KICAgICAgd2lkdGg6IDEwMCU7DQogICAgICBoZWlnaHQ6IDEwMCU7DQogICAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KICAgIH0NCiAgfQ0KICAuY2lyY2xlIHsNCiAgICB3aWR0aDogMzZweDsNCiAgICBoZWlnaHQ6IDM2cHg7DQogICAgYmFja2dyb3VuZDogI2ZmZmZmZjsNCiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlZWVlOw0KICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICBtYXJnaW46IDEzcHggYXV0byAwIGF1dG87DQogIH0NCn0NCi50cmVlLXZpcyB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIC50YWItaXRlbSB7DQogICAgcGFkZGluZzogMTVweCAyMHB4Ow0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgfQ0KICAuYWN0aXZlIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmV2LWJnLW1haW4tY29sb3IpOw0KICAgIGNvbG9yOiB2YXIoLS1wcmV2LWNvbG9yLXByaW1hcnkpOw0KICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHZhcigtLXByZXYtY29sb3ItcHJpbWFyeSk7DQogIH0NCn0NCg=="},{"version":3,"sources":["list.vue"],"names":[],"mappings":";AAofA;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;;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;;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","file":"list.vue","sourceRoot":"src/pages/setting/devise","sourcesContent":["<template>\r\n <div>\r\n <div class=\"i-layout-page-header header-title\">\r\n <span class=\"ivu-page-header-title mr20\">{{ $route.meta.title }}</span>\r\n <div>\r\n <div style=\"float: right\" v-if=\"cardShow == 1 || cardShow == 2\">\r\n <el-button class=\"bnt\" type=\"primary\" v-db-click @click=\"submit\" :loading=\"loadingExist\">保存</el-button>\r\n <el-button v-if=\"cardShow == 1\" class=\"bnt ml20\" v-db-click @click=\"reast\">重置</el-button>\r\n </div>\r\n </div>\r\n </div>\r\n <el-card class=\"h100\" :bordered=\"false\" shadow=\"never\" v-if=\"cardShow == 0\">\r\n <div class=\"acea-row no-warp\">\r\n <div class=\"iframe-col\">\r\n <iframe class=\"iframe-box\" :src=\"iframeUrl\" frameborder=\"0\" ref=\"iframe\"></iframe>\r\n <div class=\"mask\"></div>\r\n </div>\r\n <div class=\"table-box\">\r\n <div class=\"acea-row row-between-wrapper\">\r\n <div class=\"button acea-row row-middle\">\r\n <el-button class=\"m-r-10\" type=\"primary\" @click=\"createdPage\">添加页面</el-button>\r\n <el-upload\r\n :action=\"UploadPath\"\r\n :before-upload=\"beforeUpload\"\r\n :on-success=\"handleSuccess\"\r\n :on-error=\"handleError\"\r\n :limit=\"1\"\r\n :show-file-list=\"false\"\r\n accept=\".txt\"\r\n :headers=\"header\"\r\n >\r\n <el-button type=\"primary\">导入模板</el-button>\r\n </el-upload>\r\n </div>\r\n </div>\r\n <el-table\r\n :data=\"list\"\r\n ref=\"table\"\r\n class=\"mt14\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n >\r\n <el-table-column label=\"页面ID\" width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.id }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"模板名称\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"模板类型\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-tag type=\"success\" size=\"medium\" v-if=\"scope.row.status == 1\">首页</el-tag>\r\n <el-tag type=\"info\" size=\"medium\" v-else class=\"mr10\">专题页</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"添加时间\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.add_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"更新时间\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.update_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"210\">\r\n <template slot-scope=\"scope\">\r\n <div\r\n style=\"display: inline-block\"\r\n v-if=\"scope.row.status || scope.row.is_diy\"\r\n v-db-click\r\n @click=\"edit(scope.row)\"\r\n >\r\n <a\r\n v-if=\"scope.row.is_diy === 1\"\r\n class=\"target\"\r\n ref=\"target\"\r\n :href=\"`${url}${$routeProStr}/setting/pages/diy_index?id=${scope.row.id}&name=${\r\n scope.row.template_name || 'moren'\r\n }`\"\r\n >\r\n 编辑</a\r\n >\r\n <a v-else class=\"target\">编辑</a>\r\n </div>\r\n <el-divider\r\n direction=\"vertical\"\r\n v-if=\"(scope.row.status || scope.row.is_diy) && scope.row.id != 1 && scope.row.status != 1\"\r\n />\r\n\r\n <div style=\"display: inline-block\" v-if=\"scope.row.id != 1 && scope.row.status != 1\">\r\n <a v-db-click @click=\"del(scope.row, '删除此模板', scope.$index)\">删除</a>\r\n </div>\r\n <el-divider\r\n direction=\"vertical\"\r\n v-if=\"(scope.row.id != 1 && scope.row.status != 1) || scope.row.is_diy\"\r\n />\r\n <div style=\"display: inline-block\" v-if=\"scope.row.is_diy\">\r\n <a v-db-click @click=\"preview(scope.row, scope.$index)\">预览</a>\r\n </div>\r\n <el-divider direction=\"vertical\" v-if=\"scope.row.is_diy && scope.row.status != 1\" />\r\n <div style=\"display: inline-block\" v-if=\"scope.row.status != 1\">\r\n <a v-db-click @click=\"setStatus(scope.row, scope.$index)\">设为首页</a>\r\n </div>\r\n <el-divider direction=\"vertical\" />\r\n <div style=\"display: inline-block\">\r\n <a v-db-click @click=\"exportView(scope.row.id)\">导出模版</a>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"diyFrom.page\"\r\n :limit.sync=\"diyFrom.limit\"\r\n @pagination=\"diyProList\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n <goodClass v-else-if=\"cardShow == 1\" ref=\"category\" @parentFun=\"getChildData\"></goodClass>\r\n <users v-else ref=\"users\" @parentFun=\"getChildData\"></users>\r\n <el-dialog :visible.sync=\"isTemplate\" title=\"开发移动端链接\" :z-index=\"1\" width=\"540px\" @closed=\"cancel\">\r\n <div class=\"article-manager\">\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-form\r\n ref=\"formItem\"\r\n :model=\"formItem\"\r\n label-width=\"120px\"\r\n label-position=\"right\"\r\n :rules=\"ruleValidate\"\r\n @submit.native.prevent\r\n >\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"24\">\r\n <el-col>\r\n <el-form-item label=\"开发移动端链接:\" prop=\"link\" label-for=\"link\">\r\n <el-input v-model=\"formItem.link\" placeholder=\"http://localhost:8080\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-card>\r\n </div>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit('formItem')\">提交</el-button>\r\n </span>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"modal\" width=\"540px\" title=\"预览\">\r\n <div>\r\n <div v-viewer class=\"acea-row row-around code\">\r\n <div class=\"acea-row row-column-around row-between-wrapper\">\r\n <div class=\"QRpic\" ref=\"qrCodeUrl\"></div>\r\n <span class=\"mt10\">公众号二维码</span>\r\n </div>\r\n <div class=\"acea-row row-column-around row-between-wrapper\">\r\n <div class=\"QRpic\">\r\n <img v-lazy=\"qrcodeImg\" />\r\n </div>\r\n <span class=\"mt10\">小程序二维码</span>\r\n </div>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport Setting from '@/setting';\r\nimport { diyProList, diyDel, setStatus, recovery, getRoutineCode, setDefault, exportDiyDataApi } from '@/api/diy';\r\nimport { mapState, mapActions } from 'vuex';\r\nimport QRCode from 'qrcodejs2';\r\nimport goodClass from './goodClass';\r\nimport users from './users';\r\nimport { Upload } from 'element-ui';\r\nimport { getCookies } from '@/libs/util';\r\n\r\nexport default {\r\n name: 'devise_list',\r\n computed: {\r\n ...mapState('admin/layout', ['menuCollapse']),\r\n },\r\n components: {\r\n goodClass,\r\n users,\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n theme3: 'light',\r\n menuList: [\r\n {\r\n name: '商城首页',\r\n id: 1,\r\n },\r\n {\r\n name: '商品分类',\r\n id: 2,\r\n },\r\n {\r\n name: '个人中心',\r\n id: 3,\r\n },\r\n ],\r\n list: [],\r\n iframeUrl: '',\r\n modal: false,\r\n UploadPath: Setting.apiBaseURL + '/diy_pro/import/data',\r\n BaseURL: Setting.apiBaseURL.replace(/adminapi/, ''),\r\n cardShow: 0,\r\n loadingExist: false,\r\n isDiy: 1,\r\n qrcodeImg: '',\r\n diyFrom: {\r\n type: '',\r\n page: 1,\r\n limit: 15,\r\n },\r\n total: 0,\r\n formItem: {\r\n id: 0,\r\n link: '',\r\n },\r\n isTemplate: false,\r\n ruleValidate: {\r\n link: [{ required: true, message: '请输入移动端链接', trigger: 'blur' }],\r\n },\r\n url: window.location.origin,\r\n header: {},\r\n };\r\n },\r\n watch: {\r\n $route() {\r\n this.cardShow = this.$route.params.type;\r\n },\r\n },\r\n created() {\r\n this.cardShow = this.$route.params.type;\r\n this.diyProList();\r\n this.iframeUrl = `${location.origin}/pages/index/index?mdType=iframeWindow`;\r\n this.getToken();\r\n },\r\n mounted() {\r\n this.$store.commit('mobildConfig/SETEMPTY');\r\n },\r\n methods: {\r\n getToken() {\r\n this.header['Authori-zation'] = 'Bearer ' + getCookies('token');\r\n },\r\n beforeUpload(file) {\r\n const isTXT = file.type === 'text/plain';\r\n if (!isTXT) {\r\n this.$message.error('只能上传TXT文件');\r\n }\r\n return isTXT;\r\n },\r\n handleSuccess(response, file) {\r\n if (response.status == 200) {\r\n this.$message.success(response.msg);\r\n this.diyProList();\r\n } else {\r\n this.$message.error(response.msg);\r\n }\r\n },\r\n handleError(err, file) {\r\n this.$message.error('文件上传失败');\r\n },\r\n exportView(id) {\r\n exportDiyDataApi(id)\r\n .then((res) => {\r\n const textToSave = res.data.value;\r\n const blob = new Blob([textToSave], { type: 'text/plain;charset=utf-8' });\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = res.data.filename; // 设置下载文件的名称\r\n document.body.appendChild(a);\r\n a.click(); // 模拟点击触发下载\r\n document.body.removeChild(a); // 清理DOM\r\n this.$message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n createdPage() {\r\n this.$router.push({\r\n path: this.$routeProStr + '/setting/pages/diy_index',\r\n query: { id: 0, name: '首页', type: 1 },\r\n });\r\n // this.$nextTick(() => {\r\n // window.open(`${this.url}${this.$routeProStr}/setting/pages/diy_index?id=0&name=首页&type=0`);\r\n // });\r\n },\r\n cancel() {\r\n this.$refs['formItem'].resetFields();\r\n },\r\n refreshFrame() {\r\n this.iframeUrl = '';\r\n setTimeout((e) => {\r\n this.iframeUrl = `${location.origin}/pages/index/index?mdType=iframeWindow`;\r\n }, 200);\r\n },\r\n getChildData(e) {\r\n this.loadingExist = e;\r\n },\r\n submit() {\r\n if (this.cardShow == 1) {\r\n this.$refs.category.onSubmit();\r\n } else {\r\n this.$refs.users.onSubmit();\r\n }\r\n },\r\n reast() {\r\n if (this.cardShow == 1) {\r\n this.$refs.category.onSubmit(1);\r\n } else {\r\n this.$refs.users.getInfo();\r\n }\r\n },\r\n bindMenuItem(index) {\r\n this.cardShow = index;\r\n },\r\n onCopy() {\r\n this.$message.success('复制预览链接成功');\r\n },\r\n onError() {\r\n this.$message.error('复制预览链接失败');\r\n },\r\n //生成二维码\r\n creatQrCode(id) {\r\n this.$refs.qrCodeUrl.innerHTML = '';\r\n let url = `${this.BaseURL}pages/annex/special/index?id=${id}`;\r\n var qrcode = new QRCode(this.$refs.qrCodeUrl, {\r\n text: url, // 需要转换为二维码的内容\r\n width: 160,\r\n height: 160,\r\n colorDark: '#000000',\r\n colorLight: '#ffffff',\r\n correctLevel: QRCode.CorrectLevel.H,\r\n });\r\n },\r\n //小程序二维码\r\n routineCode(id) {\r\n getRoutineCode(id)\r\n .then((res) => {\r\n this.qrcodeImg = res.data.image;\r\n })\r\n .catch((err) => {\r\n this.$message.error(err);\r\n });\r\n },\r\n preview(row) {\r\n this.modal = true;\r\n this.$nextTick((e) => {\r\n this.creatQrCode(row.id);\r\n this.routineCode(row.id);\r\n });\r\n },\r\n handleSubmit(name) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n setCookies('moveLink', this.formItem.link);\r\n this.$router.push({\r\n path: this.$routeProStr + '/setting/pages/diy',\r\n query: { id: this.formItem.id, type: 1 },\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n },\r\n changeMenu(row, index, name) {\r\n switch (name) {\r\n case '1':\r\n this.setDefault(row);\r\n break;\r\n case '2':\r\n this.recovery(row);\r\n break;\r\n case '3':\r\n this.del(row, '删除此模板', index);\r\n break;\r\n default:\r\n }\r\n },\r\n //设置默认数据\r\n setDefault(row) {\r\n setDefault(row.id)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.diyProList();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n // 获取列表\r\n diyProList() {\r\n // let storage = window.localStorage;\r\n // this.iframeUrl = storage.getItem(\"iframeUrl\");\r\n let that = this;\r\n this.loading = true;\r\n diyProList(this.diyFrom).then((res) => {\r\n this.loading = false;\r\n let data = res.data;\r\n this.list = data.list;\r\n this.total = data.count;\r\n });\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.formItem.id = row.id;\r\n if (!row.is_diy) {\r\n if (!row.status) {\r\n this.$message.error('请先设为首页在进行编辑');\r\n } else {\r\n this.$router.push({\r\n path: this.$routeProStr + '/setting/pages/diy',\r\n query: { id: row.id, type: 0 },\r\n });\r\n }\r\n }\r\n },\r\n // 添加\r\n // add() {\r\n // this.$modalForm(getDiyCreate()).then(() => this.diyProList());\r\n // },\r\n // 添加\r\n add() {\r\n // this.$router.push({\r\n // path: this.$routeProStr + '/setting/pages/diy_index',\r\n // query: { id: 0, name: '首页', type: 1 },\r\n // });\r\n },\r\n // 删除\r\n del(row) {\r\n let delfromData = {\r\n title: '删除',\r\n num: 2000,\r\n url: 'diy/del/' + row.id,\r\n method: 'DELETE',\r\n data: {\r\n type: 1,\r\n },\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.diyProList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 使用模板\r\n async setStatus(row) {\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 setStatus(row.id, {\r\n type: 1,\r\n })\r\n .then((res) => {\r\n this.refreshFrame();\r\n this.$message.success(res.msg);\r\n this.diyProList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n })\r\n .catch(() => {});\r\n },\r\n recovery(row) {\r\n recovery(row.id).then((res) => {\r\n this.$message.success(res.msg);\r\n this.diyProList();\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ivu-mt {\r\n background-color: #fff;\r\n padding-bottom: 50px;\r\n}\r\n.no-warp {\r\n flex-wrap: nowrap !important;\r\n}\r\n::v-deep .el-card__body {\r\n padding: 40px;\r\n}\r\n.bnt {\r\n width: 80px !important;\r\n}\r\n.iframe-col {\r\n width: 375px;\r\n min-width: 375px;\r\n height: 650px;\r\n margin-right: 30px;\r\n position: relative;\r\n}\r\n.iframe-box {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 10px;\r\n border: 1px solid #eee;\r\n}\r\n.target-add {\r\n text-decoration: none;\r\n color: #fff;\r\n}\r\n.mask {\r\n position: absolute;\r\n left: 0;\r\n width: 100%;\r\n top: 0;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0);\r\n}\r\n::v-deep .ivu-menu-vertical .ivu-menu-item,\r\n.ivu-menu-vertical .ivu-menu-submenu-title {\r\n text-align: center;\r\n}\r\n::v-deep .i-layout-page-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n::v-deep .ivu-page-header {\r\n border-bottom: unset;\r\n position: fixed;\r\n z-index: 9;\r\n width: 100%;\r\n}\r\n::v-deep .ivu-menu-vertical .ivu-menu-item-group-title {\r\n display: none;\r\n}\r\n::v-deep .ivu-menu-vertical.ivu-menu-light:after {\r\n display: none;\r\n}\r\n::v-deep .ivu-menu {\r\n z-index: 0 !important;\r\n}\r\n::v-deep .ivu-row {\r\n display: flex;\r\n}\r\n.table-box {\r\n flex: 1;\r\n}\r\n.code {\r\n position: relative;\r\n}\r\n.QRpic {\r\n width: 160px;\r\n height: 160px;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n.left-wrapper {\r\n padding: 20px 0 0 20px;\r\n background: #fff;\r\n border-right: unset;\r\n}\r\n.tree_tit {\r\n height: 50px;\r\n line-height: 50px;\r\n font-size: 15px;\r\n color: #333;\r\n font-weight: 500;\r\n text-align: center;\r\n border-bottom: 1px solid #ebeef5;\r\n}\r\n.picCon {\r\n width: 280px;\r\n height: 510px;\r\n background: #ffffff;\r\n border: 1px solid #eeeeee;\r\n border-radius: 25px;\r\n .pictrue {\r\n width: 250px;\r\n height: 417px;\r\n border: 1px solid #eeeeee;\r\n opacity: 1;\r\n border-radius: 10px;\r\n margin: 30px auto 0 auto;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 10px;\r\n }\r\n }\r\n .circle {\r\n width: 36px;\r\n height: 36px;\r\n background: #ffffff;\r\n border: 1px solid #eeeeee;\r\n border-radius: 50%;\r\n margin: 13px auto 0 auto;\r\n }\r\n}\r\n.tree-vis {\r\n display: flex;\r\n flex-direction: column;\r\n .tab-item {\r\n padding: 15px 20px;\r\n cursor: pointer;\r\n }\r\n .active {\r\n background-color: var(--prev-bg-main-color);\r\n color: var(--prev-color-primary);\r\n border-right: 2px solid var(--prev-color-primary);\r\n }\r\n}\r\n</style>\r\n"]}]}
|