| 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\\pages\\setting\\storage\\index.vue?vue&type=style&index=0&id=1037d12a&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\setting\\storage\\index.vue","mtime":1761185180184},{"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:DQo6OnYtZGVlcCAuZWwtdGFic19faXRlbSB7DQogIGhlaWdodDogNTRweCAhaW1wb3J0YW50Ow0KICBsaW5lLWhlaWdodDogNTRweCAhaW1wb3J0YW50Ow0KfQ0KLml2dS1pbnB1dC1ncm91cCA+IC5pdnUtaW5wdXQ6bGFzdC1jaGlsZCwNCjo6di1kZWVwIC5pdnUtaW5wdXQtZ3JvdXAtYXBwZW5kIHsNCiAgYmFja2dyb3VuZDogbm9uZTsNCiAgY29sb3I6ICM5OTk5OTk7DQp9DQo6OnYtZGVlcCAuaXZ1LWlucHV0LWdyb3VwIC5pdnUtaW5wdXQgew0KICBib3JkZXItcmlnaHQ6IDBweCAhaW1wb3J0YW50Ow0KfQ0KLmNvbnRlbnQgOjp2LWRlZXAgLml2dS1mb3JtIC5pdnUtZm9ybS1pdGVtLWxhYmVsIHsNCiAgd2lkdGg6IDEzM3B4Ow0KfQ0KLnRvcElwdXQgew0KICB3aWR0aDogMTg2cHg7DQogIGJhY2tncm91bmQ6ICNmZmZmZmY7DQogIGJvcmRlci1yaWdodDogMHB4ICFpbXBvcnRhbnQ7DQp9DQouYWJicmV2aWF0aW9uIHsNCiAgLnRvcCB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7DQogICAgLnRvcEJveCB7DQogICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgLnRvcFJpZ2h0IHsNCiAgICAgICAgd2lkdGg6IDI1NHB4Ow0KICAgICAgICBtYXJnaW4tbGVmdDogMzZweDsNCiAgICAgIH0NCiAgICAgIC50b3BMZWZ0IHsNCiAgICAgICAgd2lkdGg6IDk0cHg7DQogICAgICAgIGhlaWdodDogOTRweDsNCg0KICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICAgICAgY29sb3I6ICMwMDAwMDA7DQogICAgICAgIC5pbWcgew0KICAgICAgICAgIC8vIHdpZHRoOiA4NHB4Ow0KICAgICAgICAgIGhlaWdodDogNjdweDsNCiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjdmYmZmOw0KICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsNCiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA5cHg7DQogICAgICAgICAgLmltZ3Mgew0KICAgICAgICAgICAgd2lkdGg6IDcwcHg7DQogICAgICAgICAgICBoZWlnaHQ6IDUxcHg7DQogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICB9DQogIC5jb250ZW50IHsNCiAgICA6OnYtZGVlcCAuaXZ1LWZvcm0taXRlbS1sYWJlbCB7DQogICAgICB3aWR0aDogOTZweDsNCiAgICB9DQogICAgLmZsZXggew0KICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsNCiAgICAgIC8vIHdpZHRoOiA0MDBweDsNCg0KICAgICAgLmNvbnRlbnRJcHV0IHsNCiAgICAgICAgd2lkdGg6IDQwMHB4Ow0KICAgICAgfQ0KICAgICAgLmNvbmVudHMgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAudGl0bGUgew0KICAgICAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgICAgIG1hcmdpbi10b3A6IDcwcHg7DQogICAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDsNCiAgICAgICAgfQ0KICAgICAgICAucG9zaXRpb25Cb3ggew0KICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgZmxleC13cmFwOiB3cmFwOw0KICAgICAgICAgIHdpZHRoOiAxMDFweDsNCiAgICAgICAgICBoZWlnaHQ6IDk5cHg7DQogICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZGRkZDsNCiAgICAgICAgICAuYm94IHsNCiAgICAgICAgICAgIHdpZHRoOiAzM3B4Ow0KICAgICAgICAgICAgaGVpZ2h0OiAzM3B4Ow0KICAgICAgICAgICAgLy8gYm9yZGVyLXJhZGl1czogNHB4IDBweCAwcHggMHB4Ow0KICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDsNCiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICB9DQogICAgICAgICAgLm9uIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQsIDE0NCwgMjU1LCAwLjEpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAgvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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","file":"index.vue","sourceRoot":"src/pages/setting/storage","sourcesContent":["<template>\r\n <div>\r\n <div class=\"message\">\r\n <el-card :bordered=\"false\" shadow=\"never\" :body-style=\"{ padding: '0 20px 20px' }\">\r\n <div class=\"\">\r\n <el-tabs v-model=\"currentTab\" @tab-click=\"changeTab\">\r\n <el-tab-pane\r\n :label=\"item.label\"\r\n :name=\"item.value.toString()\"\r\n v-for=\"(item, index) in headerList\"\r\n :key=\"index\"\r\n />\r\n </el-tabs>\r\n </div>\r\n <el-alert closable v-if=\"currentTab == 1\">\r\n <template slot=\"title\">\r\n <p>上传图片时会生成缩略图</p>\r\n <p>未设置按照系统默认生成,系统默认:大图800*800,中图300*300,小图150*150</p>\r\n <p>水印只在上传图片时生成,原图,大中小缩略图上都按照比例存在。</p>\r\n <p>若上传图片时未开启水印,则该图在开启水印之后依旧无水印效果。</p>\r\n </template>\r\n </el-alert>\r\n <el-alert closable v-else>\r\n <template slot=\"title\">\r\n <p v-if=\"currentTab == 2\">\r\n 七牛云开通方法:<a href=\"https://doc.crmeb.com/single/v5/7792\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p v-if=\"currentTab == 3\">\r\n 阿里云oss开通方法:<a href=\"https://doc.crmeb.com/single/v5/7790\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p v-if=\"currentTab == 4\">\r\n 腾讯云cos开通方法:<a href=\"https://doc.crmeb.com/single/v5/7791\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p v-if=\"currentTab == 5\">\r\n 京东云cos开通方法:<a href=\"https://doc.crmeb.com/single/v5/8522\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p v-if=\"currentTab == 6\">\r\n 华为云cos开通方法:<a href=\"https://doc.crmeb.com/single/v5/8523\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p v-if=\"currentTab == 7\">\r\n 天翼云cos开通方法:<a href=\"https://doc.crmeb.com/single/v5/8524\" target=\"_blank\">点击查看</a>\r\n </p>\r\n <p>第一步: 添加【存储空间】(空间名称不能重复)</p>\r\n <p>第二步: 开启【使用状态】</p>\r\n <template v-if=\"currentTab == 2\">\r\n <p>第三步(必选): 选择云存储空间列表上的修改【空间域名操作】</p>\r\n <p>第四步(必选): 选择云存储空间列表上的修改【CNAME配置】,打开后复制记录值到对应的平台解析</p>\r\n </template>\r\n <template v-else>\r\n <p>第三步(可选): 选择云存储空间列表上的修改【空间域名操作】</p>\r\n <p>第四步(可选): 选择云存储空间列表上的修改【CNAME配置】,打开后复制记录值到对应的平台解析</p>\r\n </template>\r\n </template>\r\n </el-alert>\r\n </el-card>\r\n </div>\r\n <div class=\"pt16\" v-if=\"currentTab == 1\">\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-row>\r\n <el-col :span=\"24\">\r\n <span class=\"save-type\"> 存储方式: </span>\r\n <el-radio-group v-model=\"formValidate.upload_type\" @input=\"changeSave\">\r\n <el-radio label=\"1\">本地存储</el-radio>\r\n <el-radio label=\"2\">七牛云存储</el-radio>\r\n <el-radio label=\"3\">阿里云存储</el-radio>\r\n <el-radio label=\"4\">腾讯云存储</el-radio>\r\n <el-radio label=\"5\">京东云存储</el-radio>\r\n <el-radio label=\"6\">华为云存储</el-radio>\r\n <el-radio label=\"7\">天翼云存储</el-radio>\r\n </el-radio-group>\r\n <!-- <el-switch :active-value=\"1\" :inactive-value=\"0\"\r\n v-model=\"localStorage\"\r\n size=\"large\"\r\n @change=\"addSwitch\"\r\n >\r\n <span slot=\"open\">开启</span>\r\n <span slot=\"close\">关闭</span>\r\n </el-switch> -->\r\n </el-col>\r\n </el-row>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-form ref=\"formValidate\" :model=\"formValidate\" :rules=\"ruleValidate\">\r\n <div class=\"abbreviation\">\r\n <el-form-item label=\"是否开启缩略图:\" label-width=\"110px\">\r\n <el-switch\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"formValidate.image_thumb_status\"\r\n size=\"large\"\r\n >\r\n <span slot=\"open\">开启</span>\r\n <span slot=\"close\">关闭</span>\r\n </el-switch>\r\n </el-form-item>\r\n <div class=\"top\" v-if=\"formValidate.image_thumb_status == 1\">\r\n <div class=\"topBox\">\r\n <div class=\"topLeft\">\r\n <div class=\"img\">\r\n <img class=\"imgs\" src=\"../../../assets/images/abbreviationBig.png\" alt=\"\" />\r\n </div>\r\n <div>缩略大图</div>\r\n </div>\r\n <div class=\"topRight\">\r\n <el-form-item label=\"宽:\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.thumb_big_width\"\r\n placeholder=\"请输入宽度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"高:\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.thumb_big_height\"\r\n placeholder=\"请输入高度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n </div>\r\n <div class=\"topBox\">\r\n <div class=\"topLeft\">\r\n <div class=\"img\">\r\n <img class=\"imgs\" src=\"../../../assets/images/abbreviation.png\" alt=\"\" />\r\n </div>\r\n <div>缩略中图</div>\r\n </div>\r\n <div class=\"topRight\">\r\n <el-form-item label=\"宽:\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.thumb_mid_width\"\r\n placeholder=\"请输入宽度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"高:\">\r\n <el-input\r\n type=\"number\"\r\n class=\"topIput\"\r\n v-model=\"formValidate.thumb_mid_height\"\r\n placeholder=\"请输入高度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n </div>\r\n <div class=\"topBox\">\r\n <div class=\"topLeft\">\r\n <div class=\"img\">\r\n <img class=\"imgs\" src=\"../../../assets/images/abbreviationSmall.png\" alt=\"\" />\r\n </div>\r\n <div>缩略小图</div>\r\n </div>\r\n <div class=\"topRight\">\r\n <el-form-item label=\"宽:\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.thumb_small_width\"\r\n placeholder=\"请输入宽度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item label=\"高:\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.thumb_small_height\"\r\n placeholder=\"请输入高度\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n </div>\r\n </div>\r\n <el-divider />\r\n <div class=\"content mt20\">\r\n <el-form-item label=\"是否开启水印:\" label-width=\"110px\">\r\n <el-switch\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"formValidate.image_watermark_status\"\r\n size=\"large\"\r\n >\r\n <span slot=\"open\">开启</span>\r\n <span slot=\"close\">关闭</span>\r\n </el-switch>\r\n </el-form-item>\r\n <div v-if=\"formValidate.image_watermark_status == 1\">\r\n <el-form-item label=\"类型:\" label-width=\"110px\">\r\n <el-radio-group v-model=\"formValidate.watermark_type\">\r\n <el-radio :label=\"1\">图片</el-radio>\r\n <el-radio :label=\"2\">文字</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <div v-if=\"formValidate.watermark_type == 1\">\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"透明度:\" prop=\"name\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_opacity\"\r\n placeholder=\"请输入水印透明度\"\r\n >\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"倾斜度:\" prop=\"mail\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_rotate\"\r\n placeholder=\"请输入水印倾斜度\"\r\n >\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"图片:\" prop=\"name\" label-width=\"110px\">\r\n <div class=\"picBox\" v-db-click @click=\"modalPicTap('单选')\">\r\n <div class=\"pictrue\" v-if=\"formValidate.watermark_image\">\r\n <img :src=\"formValidate.watermark_image\" />\r\n </div>\r\n <div class=\"upLoad acea-row row-center-wrapper\" v-else>\r\n <i class=\"el-icon-picture-outline\" style=\"font-size: 24px\"></i>\r\n </div>\r\n </div>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"位置:\" prop=\"mail\" label-width=\"110px\">\r\n <div class=\"conents\">\r\n <div class=\"positionBox\">\r\n <div\r\n class=\"topIput box\"\r\n :class=\"positionId == item.id ? 'on' : ''\"\r\n v-for=\"(item, index) in boxs\"\r\n :key=\"index\"\r\n v-db-click\r\n @click=\"bindbox(item)\"\r\n ></div>\r\n </div>\r\n <div class=\"title\">{{ positiontlt }}</div>\r\n </div>\r\n </el-form-item>\r\n </div>\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"横坐标偏移量:\" label-width=\"110px\" prop=\"name\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_x\"\r\n placeholder=\"请输入水印横坐标偏移量\"\r\n style=\"width: 240px\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"纵坐标偏移量:\" label-width=\"110px\" prop=\"mail\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_y\"\r\n placeholder=\"请输入水印纵坐标偏移量\"\r\n style=\"width: 240px\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n </div>\r\n <!-- 水印类型为文字 -->\r\n <div v-else>\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"文字:\" label-width=\"110px\" prop=\"name\">\r\n <el-input class=\"topIput\" v-model=\"formValidate.watermark_text\" placeholder=\"请输入水印文字\">\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"文字大小:\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_text_size\"\r\n placeholder=\"请输入水印文字大小\"\r\n >\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"字体颜色:\" prop=\"name\" label-width=\"110px\">\r\n <el-color-picker v-model=\"formValidate.watermark_text_color\"></el-color-picker>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"位置:\" prop=\"mail\" label-width=\"110px\">\r\n <div class=\"conents\">\r\n <div class=\"positionBox\">\r\n <div\r\n class=\"topIput box\"\r\n :class=\"positionId == item.id ? 'on' : ''\"\r\n v-for=\"(item, index) in boxs\"\r\n :key=\"index\"\r\n v-db-click\r\n @click=\"bindbox(item)\"\r\n ></div>\r\n </div>\r\n <div class=\"title\">{{ positiontlt }}</div>\r\n </div>\r\n </el-form-item>\r\n </div>\r\n <div class=\"flex\">\r\n <el-form-item class=\"contentIput\" label=\"字体旋转角度:\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_text_angle\"\r\n placeholder=\"请输入水印字体旋转角度\"\r\n >\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item class=\"contentIput\" label=\"横坐标偏移量:\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_x\"\r\n placeholder=\"请输入水印横坐标偏移量\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n <el-form-item class=\"contentIput\" label=\"纵坐标偏移量:\" prop=\"mail\" label-width=\"110px\">\r\n <el-input\r\n class=\"topIput\"\r\n type=\"number\"\r\n v-model=\"formValidate.watermark_y\"\r\n placeholder=\"请输入水印纵坐标偏移量\"\r\n >\r\n <span slot=\"append\">px</span>\r\n </el-input>\r\n </el-form-item>\r\n </div>\r\n </div>\r\n </div>\r\n <el-form-item>\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit('formValidate')\">保存</el-button>\r\n </el-form-item>\r\n </div>\r\n </el-form>\r\n </el-card>\r\n </div>\r\n <!-- 缩略图配置 -->\r\n <div class=\"pt10\" v-else-if=\"currentTab == 10\"></div>\r\n <div class=\"pt10\" v-else>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-row class=\"mb20\">\r\n <el-col :span=\"24\">\r\n <el-button type=\"primary\" v-db-click @click=\"addStorageBtn\">添加存储空间</el-button>\r\n <el-button type=\"success\" v-db-click @click=\"synchro\" style=\"margin-left: 20px\">同步存储空间</el-button>\r\n <el-button v-db-click @click=\"addConfigBtn\" style=\"float: right\">修改配置信息</el-button>\r\n </el-col>\r\n </el-row>\r\n <el-table\r\n :data=\"levelLists\"\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=\"储存空间名称\" min-width=\"120\">\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=\"90\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row._region }}</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.domain }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"使用状态\" min-width=\"90\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n class=\"defineSwitch\"\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"scope.row.status\"\r\n :value=\"scope.row.status\"\r\n @change=\"changeSwitch(scope.row, index)\"\r\n size=\"large\"\r\n active-text=\"开启\"\r\n inactive-text=\"关闭\"\r\n >\r\n </el-switch>\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=\"220\">\r\n <template slot-scope=\"scope\">\r\n <template v-if=\"scope.row.domain && scope.row.domain != scope.row.cname\">\r\n <span class=\"btn\" v-db-click @click=\"config(scope.row)\">CNAME配置</span>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n </template>\r\n <span class=\"btn\" v-db-click @click=\"edit(scope.row)\">修改空间域名</span>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <span class=\"btn\" v-db-click @click=\"del(scope.row, '删除该数据', scope.$index)\">删除</span>\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=\"list.page\"\r\n :limit.sync=\"list.limit\"\r\n @pagination=\"getlist\"\r\n />\r\n </div>\r\n </el-card>\r\n </div>\r\n <el-dialog :visible.sync=\"configuModal\" title=\"CNAME配置\" width=\"570px\">\r\n <div>\r\n <div class=\"confignv\"><span class=\"configtit\">主机记录:</span>{{ configData.domain }}</div>\r\n <div class=\"confignv\"><span class=\"configtit\">记录类型:</span>CNAME</div>\r\n <div class=\"confignv\">\r\n <span class=\"configtit\">记录值:</span>{{ configData.cname }}\r\n <span class=\"copy copy-data\" v-db-click @click=\"insertCopy(configData.cname)\">复制</span>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n <el-dialog :visible.sync=\"modalPic\" width=\"950px\" title=\"上传商品图\" :close-on-click-modal=\"false\">\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</template>\r\n\r\n<script>\r\nimport ClipboardJS from 'clipboard';\r\nimport uploadPictures from '@/components/uploadPictures';\r\n\r\nimport {\r\n storageConfigApi,\r\n addConfigApi,\r\n addStorageApi,\r\n storageListApi,\r\n storageSynchApi,\r\n storageSwitchApi,\r\n storageStatusApi,\r\n editStorageApi,\r\n positionInfoApi,\r\n positionPostApi,\r\n saveType,\r\n} from '@/api/setting';\r\nexport default {\r\n components: { uploadPictures },\r\n data() {\r\n return {\r\n modalPic: false,\r\n saveType: 0,\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 positionId: 1,\r\n positiontlt: '',\r\n formValidate: {\r\n image_thumb_status: 0,\r\n thumb_big_height: '',\r\n thumb_big_width: '',\r\n thumb_mid_width: '',\r\n thumb_mid_height: '',\r\n thumb_small_height: '',\r\n thumb_small_width: '',\r\n image_watermark_status: 0,\r\n watermark_type: 1,\r\n watermark_opacity: '',\r\n watermark_rotate: '',\r\n watermark_position: 1,\r\n },\r\n boxs: [\r\n { content: '左上', id: 1 },\r\n { content: '上', id: 2 },\r\n { content: '右上', id: 3 },\r\n { content: '左中', id: 4 },\r\n { content: '中', id: 5 },\r\n { content: '右中', id: 6 },\r\n { content: '左下', id: 7 },\r\n { content: '下', id: 8 },\r\n { content: '右下', id: 9 },\r\n ],\r\n ruleValidate: {},\r\n configuModal: false,\r\n configData: '',\r\n headerList: [\r\n { label: '储存配置', value: '1' },\r\n { label: '七牛云储存', value: '2' },\r\n { label: '阿里云储存', value: '3' },\r\n { label: '腾讯云储存', value: '4' },\r\n { label: '京东云储存', value: '5' },\r\n { label: '华为云储存', value: '6' },\r\n { label: '天翼云储存', value: '7' },\r\n // { label: \"缩略图配置\", value: \"10\" },\r\n ],\r\n\r\n total: 0,\r\n list: {\r\n page: 1,\r\n limit: 15,\r\n type: '1',\r\n },\r\n levelLists: [],\r\n currentTab: '1',\r\n loading: false,\r\n addData: {\r\n input: '',\r\n select: '',\r\n jurisdiction: '1',\r\n type: '1',\r\n },\r\n confData: {\r\n AccessKeyId: '',\r\n AccessKeySecret: '',\r\n },\r\n localStorage: false,\r\n };\r\n },\r\n created() {\r\n storageConfigApi().then((res) => {\r\n if (res.data.type == 1) {\r\n this.localStorage = true;\r\n }\r\n this.formValidate.upload_type = res.data.type;\r\n this.currentTab = res.data.type.toString();\r\n this.changeTab();\r\n });\r\n },\r\n methods: {\r\n insertCopy(text) {\r\n this.$copyText(text)\r\n .then((message) => {\r\n this.$message.success('复制成功');\r\n })\r\n .catch((err) => {\r\n this.$message.error('复制失败');\r\n });\r\n },\r\n changeSave(type) {\r\n saveType(type)\r\n .then((res) => {\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 bindbox(item) {\r\n this.positionId = item.id;\r\n this.positiontlt = item.content;\r\n this.formValidate.watermark_position = item.id;\r\n },\r\n handleSubmit(name) {\r\n if (this.formValidate.image_watermark_status) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n this.postMessage(this.formValidate);\r\n } else {\r\n this.$message.error('Fail!');\r\n }\r\n });\r\n } else {\r\n this.postMessage(this.formValidate);\r\n }\r\n },\r\n //保存接口\r\n postMessage(data) {\r\n positionPostApi(data)\r\n .then((res) => {\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 // 选择图片\r\n modalPicTap() {\r\n this.modalPic = true;\r\n },\r\n // 选中图片\r\n getPic(pc) {\r\n this.formValidate.watermark_image = pc.att_dir;\r\n this.modalPic = false;\r\n },\r\n config(row) {\r\n this.configuModal = true;\r\n this.configData = row;\r\n },\r\n //同步储存空间\r\n synchro() {\r\n storageSynchApi(this.currentTab)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getlist();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n // 添加存储空间\r\n addStorageBtn() {\r\n this.$modalForm(addStorageApi(this.currentTab)).then(() => {\r\n this.getlist();\r\n });\r\n },\r\n // 修改配置信息\r\n addConfigBtn() {\r\n this.$modalForm(addConfigApi(this.currentTab)).then(() => {\r\n this.getlist();\r\n });\r\n },\r\n //修改空间域名\r\n edit(row) {\r\n this.$modalForm(editStorageApi(row.id)).then(() => {\r\n this.getlist();\r\n });\r\n },\r\n changeSwitch(row, item) {\r\n return new Promise((resolve) => {\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 storageStatusApi(row.id)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getlist();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n })\r\n .catch(() => {});\r\n });\r\n },\r\n getlist() {\r\n this.loading = true;\r\n storageListApi(this.list).then((res) => {\r\n this.total = res.data.count;\r\n this.levelLists = res.data.list;\r\n this.loading = false;\r\n });\r\n },\r\n changeTab() {\r\n this.list.type = this.currentTab;\r\n this.list.page = 1;\r\n if (this.currentTab == 1) {\r\n this.getposition();\r\n } else {\r\n this.getlist();\r\n }\r\n },\r\n getposition() {\r\n let that = this;\r\n positionInfoApi().then((res) => {\r\n this.formValidate = res.data;\r\n this.positionId = res.data.watermark_position;\r\n for (var i = 0; i < this.boxs.length; i++) {\r\n if (this.boxs[i].id == res.data.watermark_position) {\r\n that.bindbox(this.boxs[i]);\r\n }\r\n }\r\n });\r\n },\r\n addSwitch(e) {\r\n if (e) {\r\n this.localStorage = 1;\r\n }\r\n storageSwitchApi({ type: this.localStorage })\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getlist();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n // 删除\r\n del(row, tit, num) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `system/config/storage/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.getlist();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n<style scoped lang=\"scss\">\r\n::v-deep .el-tabs__item {\r\n height: 54px !important;\r\n line-height: 54px !important;\r\n}\r\n.ivu-input-group > .ivu-input:last-child,\r\n::v-deep .ivu-input-group-append {\r\n background: none;\r\n color: #999999;\r\n}\r\n::v-deep .ivu-input-group .ivu-input {\r\n border-right: 0px !important;\r\n}\r\n.content ::v-deep .ivu-form .ivu-form-item-label {\r\n width: 133px;\r\n}\r\n.topIput {\r\n width: 186px;\r\n background: #ffffff;\r\n border-right: 0px !important;\r\n}\r\n.abbreviation {\r\n .top {\r\n display: flex;\r\n justify-content: flex-start;\r\n .topBox {\r\n display: flex;\r\n .topRight {\r\n width: 254px;\r\n margin-left: 36px;\r\n }\r\n .topLeft {\r\n width: 94px;\r\n height: 94px;\r\n\r\n text-align: center;\r\n font-size: 13px;\r\n font-weight: 400;\r\n color: #000000;\r\n .img {\r\n // width: 84px;\r\n height: 67px;\r\n background: #f7fbff;\r\n border-radius: 4px;\r\n margin-bottom: 9px;\r\n .imgs {\r\n width: 70px;\r\n height: 51px;\r\n display: inline-block;\r\n text-align: center;\r\n margin-top: 8px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .content {\r\n ::v-deep .ivu-form-item-label {\r\n width: 96px;\r\n }\r\n .flex {\r\n display: flex;\r\n justify-content: flex-start;\r\n // width: 400px;\r\n\r\n .contentIput {\r\n width: 400px;\r\n }\r\n .conents {\r\n display: flex;\r\n .title {\r\n width: 30px;\r\n margin-top: 70px;\r\n margin-left: 6px;\r\n }\r\n .positionBox {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 101px;\r\n height: 99px;\r\n border-right: 1px solid #dddddd;\r\n .box {\r\n width: 33px;\r\n height: 33px;\r\n // border-radius: 4px 0px 0px 0px;\r\n border: 1px solid #dddddd;\r\n cursor: pointer;\r\n }\r\n .on {\r\n background: rgba(24, 144, 255, 0.1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n<style scoped>\r\n.message ::v-deep .ivu-table-header thead tr th {\r\n padding: 8px 16px;\r\n}\r\n.ivu-radio-wrapper {\r\n margin-right: 15px;\r\n font-size: 12px !important;\r\n}\r\n.message ::v-deep .ivu-tabs-tab {\r\n border-radius: 0 !important;\r\n}\r\n.table-box {\r\n padding: 20px;\r\n}\r\n.is-table {\r\n display: flex;\r\n /* justify-content: space-around; */\r\n justify-content: center;\r\n}\r\n.btn {\r\n cursor: pointer;\r\n color: #2d8cf0;\r\n font-size: 12px;\r\n}\r\n.is-switch-close {\r\n background-color: #504444;\r\n}\r\n.is-switch {\r\n background-color: #eb5252;\r\n}\r\n.notice-list {\r\n background-color: #308cf5;\r\n margin: 0 15px;\r\n}\r\n.table {\r\n padding: 0 18px;\r\n}\r\n.confignv {\r\n margin: 10px 0px;\r\n}\r\n.configtit {\r\n display: inline-block;\r\n width: 90px;\r\n text-align: right;\r\n}\r\n.copy {\r\n padding: 3px 5px;\r\n border: 1px solid #cccccc;\r\n border-radius: 5px;\r\n color: #333;\r\n cursor: pointer;\r\n margin-left: 5px;\r\n}\r\n.copy:hover {\r\n border-color: #2d8cf0;\r\n color: #2d8cf0;\r\n}\r\n.picBox {\r\n display: inline-block;\r\n cursor: pointer;\r\n}\r\n.picBox .pictrue {\r\n width: 60px;\r\n height: 60px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n margin-right: 10px;\r\n}\r\n\r\n.picBox .pictrue img {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n.picBox .upLoad {\r\n width: 58px;\r\n height: 58px;\r\n line-height: 58px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n border-radius: 4px;\r\n background: rgba(0, 0, 0, 0.02);\r\n}\r\nh3 {\r\n margin: 5px 0 15px 0;\r\n}\r\n.table-box p {\r\n margin-bottom: 10px;\r\n}\r\n.save-type {\r\n font-size: 12px;\r\n}\r\n</style>\r\n"]}]}
|