74906c08ccf865b1448014957934b547.json 26 KB

1
  1. {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/system/config/config-data.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/system/config/config-data.vue","mtime":1721674673269},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAidnVleCI7DQppbXBvcnQgdXBsb2FkSW1hZ2UgZnJvbSAnQC9jb21wb25lbnRzL3VwbG9hZEltYWdlJw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAiU3lzQ29uZmlnRGF0YSIsDQogIGNvbXBvbmVudHM6IHt1cGxvYWRJbWFnZX0sDQogIHByb3BzOiB7DQogICAgY29uZmlnZ3JvdXBJZDogTnVtYmVyLCAgLy8g6YWN572uaWQNCiAgICB0YkhlaWdodDogU3RyaW5nICAvLyDooajmoLzpq5jluqYNCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgdGFibGU6IHt1cmw6ICcvY29uZmlnL2luZGV4Jywgd2hlcmU6IHtjb25maWdncm91cElkOiB0aGlzLmNvbmZpZ2dyb3VwSWR9LCBwYWdlOiB7bGltaXQ6IDIwfX0sICAvLyDooajmoLzphY3nva4NCiAgICAgIGNob29zZTogW10sICAvLyDooajmoLzpgInkuK3mlbDmja4NCiAgICAgIHNob3dFZGl0OiBmYWxzZSwgIC8vIOaYr+WQpuaYvuekuuihqOWNleW8ueeqlw0KICAgICAgZWRpdEZvcm06IHtjb25maWdfZ3JvdXBfaWQ6MH0sICAvLyDooajljZXmlbDmja4NCiAgICAgIHBpY2tlck9wdGlvbnM6IHsNCiAgICAgICAgc2hvcnRjdXRzOiBbew0KICAgICAgICAgIHRleHQ6ICfmnIDov5HkuIDlkagnLA0KICAgICAgICAgIG9uQ2xpY2socGlja2VyKSB7DQogICAgICAgICAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgc3RhcnQuc2V0VGltZShzdGFydC5nZXRUaW1lKCkgLSAzNjAwICogMTAwMCAqIDI0ICogNyk7DQogICAgICAgICAgICBwaWNrZXIuJGVtaXQoJ3BpY2snLCBbc3RhcnQsIGVuZF0pOw0KICAgICAgICAgIH0NCiAgICAgICAgfSwgew0KICAgICAgICAgIHRleHQ6ICfmnIDov5HkuIDkuKrmnIgnLA0KICAgICAgICAgIG9uQ2xpY2socGlja2VyKSB7DQogICAgICAgICAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgICAgc3RhcnQuc2V0VGltZShzdGFydC5nZXRUaW1lKCkgLSAzNjAwICogMTAwMCAqIDI0ICogMzApOw0KICAgICAgICAgICAgcGlja2VyLiRlbWl0KCdwaWNrJywgW3N0YXJ0LCBlbmRdKTsNCiAgICAgICAgICB9DQogICAgICAgIH0sIHsNCiAgICAgICAgICB0ZXh0OiAn5pyA6L+R5LiJ5Liq5pyIJywNCiAgICAgICAgICBvbkNsaWNrKHBpY2tlcikgew0KICAgICAgICAgICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKTsNCiAgICAgICAgICAgIHN0YXJ0LnNldFRpbWUoc3RhcnQuZ2V0VGltZSgpIC0gMzYwMCAqIDEwMDAgKiAyNCAqIDkwKTsNCiAgICAgICAgICAgIHBpY2tlci4kZW1pdCgncGljaycsIFtzdGFydCwgZW5kXSk7DQogICAgICAgICAgfQ0KICAgICAgICB9XQ0KICAgICAgfSwNCiAgICAgIGVkaXRSdWxlczogeyAgLy8g6KGo5Y2V6aqM6K+B6KeE5YiZDQogICAgICAgIHRpdGxlOiBbDQogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl6YWN572u5qCH6aKYJywgdHJpZ2dlcjogJ2JsdXInfQ0KICAgICAgICBdLA0KICAgICAgICBjb2RlOiBbDQogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl6YWN572u57yW56CBJywgdHJpZ2dlcjogJ2JsdXInfQ0KICAgICAgICBdLA0KICAgICAgICBzb3J0OiBbDQogICAgICAgICAge3JlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl5o6S5bqP5Y+3JywgdHJpZ2dlcjogJ2JsdXInfQ0KICAgICAgICBdDQogICAgICB9DQogICAgfQ0KICB9LA0KICBjb21wdXRlZDogew0KICAgIC4uLm1hcEdldHRlcnMoWyJwZXJtaXNzaW9uIl0pLA0KICB9LA0KICBtZXRob2RzOiB7DQogICAgLyog5pi+56S657yW6L6RICovDQogICAgZWRpdChyb3cpIHsNCiAgICAgIHRoaXMuZWRpdEZvcm0gPSBPYmplY3QuYXNzaWduKHt9LCByb3cpOw0KICAgICAgdGhpcy5zaG93RWRpdCA9IHRydWU7DQogICAgfSwNCiAgICAvKiDkv53lrZjnvJbovpEgKi8NCiAgICBzYXZlKCkgew0KICAgICAgdGhpcy4kcmVmc1snZWRpdEZvcm0nXS52YWxpZGF0ZSgodmFsaWQpID0+IHsNCiAgICAgICAgaWYgKHZhbGlkKSB7DQogICAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsNCiAgICAgICAgICAvLyDorr7nva7phY3nva7nsbvlnosNCiAgICAgICAgICB0aGlzLmVkaXRGb3JtLmNvbmZpZ19ncm91cF9pZCA9IHRoaXMuY29uZmlnZ3JvdXBJZDsNCiAgICAgICAgICB0aGlzLiRodHRwLnBvc3QoJy9jb25maWcvZWRpdCcsIHRoaXMuZWRpdEZvcm0pLnRoZW4ocmVzID0+IHsNCiAgICAgICAgICAgIGxvYWRpbmcuY2xvc2UoKTsNCiAgICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7DQogICAgICAgICAgICAgIHRoaXMuc2hvd0VkaXQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7dHlwZTogJ3N1Y2Nlc3MnLCBtZXNzYWdlOiByZXMuZGF0YS5tc2d9KTsNCiAgICAgICAgICAgICAgdGhpcy4kcmVmcy50YWJsZS5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLmRhdGEubXNnKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9KS5jYXRjaChlID0+IHsNCiAgICAgICAgICAgIGxvYWRpbmcuY2xvc2UoKTsNCiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tZXNzYWdlKTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgIH0pOw0KICAgIH0sDQogICAgLyog5Yig6ZmkICovDQogICAgcmVtb3ZlKHJvdykgew0KICAgICAgaWYgKCFyb3cpIHsgIC8vIOaJuemHj+WIoOmZpA0KICAgICAgICBpZiAodGhpcy5jaG9vc2UubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign6K+36Iez5bCR6YCJ5oup5LiA5p2h5pWw5o2uJyk7DQogICAgICAgIGxldCBpZHMgPSB0aGlzLmNob29zZS5tYXAoZCA9PiBkLmlkKTsNCiAgICAgICAgdGhpcy4kY29uZmlybSgn56Gu5a6a6KaB5Yig6Zmk6YCJ5Lit55qE6YWN572u5ZCXPycsICfmj5DnpLonLCB7dHlwZTogJ3dhcm5pbmcnfSkudGhlbigoKSA9PiB7DQogICAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsNCiAgICAgICAgICB0aGlzLiRodHRwLnBvc3QoJy9jb25maWcvZGVsZXRlJywge2lkOiBpZHN9KS50aGVuKHJlcyA9PiB7DQogICAgICAgICAgICBsb2FkaW5nLmNsb3NlKCk7DQogICAgICAgICAgICBpZiAocmVzLmRhdGEuY29kZSA9PT0gMCkgew0KICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHt0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2U6IHJlcy5kYXRhLm1zZ30pOw0KICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRhYmxlLnJlbG9hZCgpOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0pLmNhdGNoKGUgPT4gew0KICAgICAgICAgICAgbG9hZGluZy5jbG9zZSgpOw0KICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlLm1lc3NhZ2UpOw0KICAgICAgICAgIH0pOw0KICAgICAgICB9KS5jYXRjaCgoKSA9PiAwKTsNCiAgICAgIH0gZWxzZSB7ICAvLyDljZXkuKrliKDpmaQNCiAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsNCiAgICAgICAgdGhpcy4kaHR0cC5wb3N0KCcvY29uZmlnL2RlbGV0ZScsIHtpZDpyb3cuaWR9KS50aGVuKHJlcyA9PiB7DQogICAgICAgICAgbG9hZGluZy5jbG9zZSgpOw0KICAgICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHt0eXBlOiAnc3VjY2VzcycsIG1lc3NhZ2U6IHJlcy5kYXRhLm1zZ30pOw0KICAgICAgICAgICAgdGhpcy4kcmVmcy50YWJsZS5yZWxvYWQoKTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihyZXMuZGF0YS5tc2cpOw0KICAgICAgICAgIH0NCiAgICAgICAgfSkuY2F0Y2goZSA9PiB7DQogICAgICAgICAgbG9hZGluZy5jbG9zZSgpOw0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tZXNzYWdlKTsNCiAgICAgICAgfSk7DQogICAgICB9DQogICAgfSwNCiAgICAvKiDmm7TmlLnnirbmgIEgKi8NCiAgICBlZGl0U3RhdHVzKHJvdykgew0KICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuJGxvYWRpbmcoe2xvY2s6IHRydWV9KTsNCiAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCByb3cpOw0KICAgICAgdGhpcy4kaHR0cC5wb3N0KCcvY29uZmlnL3N0YXR1cycsIHBhcmFtcykudGhlbihyZXMgPT4gew0KICAgICAgICBsb2FkaW5nLmNsb3NlKCk7DQogICAgICAgIGlmIChyZXMuZGF0YS5jb2RlID09PSAwKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7dHlwZTogJ3N1Y2Nlc3MnLCBtZXNzYWdlOiByZXMuZGF0YS5tc2d9KTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICByb3cuc3RhdHVzID0gIXJvdy5zdGF0dXMgPyAyIDogMTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5kYXRhLm1zZyk7DQogICAgICAgIH0NCiAgICAgIH0pLmNhdGNoKGUgPT4gew0KICAgICAgICBsb2FkaW5nLmNsb3NlKCk7DQogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tZXNzYWdlKTsNCiAgICAgIH0pOw0KICAgIH0sDQogIH0sDQogIHdhdGNoOiB7DQogICAgLyog55uR5ZCs6YWN572uaWTlj5jljJYgKi8NCiAgICBjb25maWdncm91cElkKCkgew0KICAgICAgdGhpcy50YWJsZS53aGVyZSA9IHtjb25maWdncm91cElkOiB0aGlzLmNvbmZpZ2dyb3VwSWR9Ow0KICAgICAgdGhpcy4kcmVmcy50YWJsZS5yZWxvYWQoKTsNCiAgICB9DQogIH0NCn0NCg=="},{"version":3,"sources":["config-data.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsLA;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;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":"config-data.vue","sourceRoot":"src/views/system/config","sourcesContent":["<template>\r\n <div class=\"dict-data-page\">\r\n <!-- 搜索表单 -->\r\n <el-form :model=\"table.where\" class=\"ele-form-search ele-table-tool-default\" size=\"small\"\r\n @keyup.enter.native=\"$refs.table.reload()\"\r\n @submit.native.prevent>\r\n <el-row :gutter=\"15\">\r\n <el-col :md=\"6\" :sm=\"12\">\r\n <el-form-item>\r\n <el-input v-model=\"table.where.title\" placeholder=\"请输入配置标题\" clearable size=\"small\"/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :md=\"12\" :sm=\"12\">\r\n <div class=\"ele-form-actions\">\r\n <el-button type=\"primary\" @click=\"$refs.table.reload()\" icon=\"el-icon-search\" class=\"ele-btn-icon\"\r\n size=\"small\">查询\r\n </el-button>\r\n <el-button @click=\"showEdit=true\" type=\"primary\" icon=\"el-icon-plus\" class=\"ele-btn-icon\" size=\"small\" v-if=\"permission.includes('sys:config:add')\">添加\r\n </el-button>\r\n <el-button @click=\"remove()\" type=\"danger\" icon=\"el-icon-delete\" class=\"ele-btn-icon\" size=\"small\" v-if=\"permission.includes('sys:config:delete')\">删除\r\n </el-button>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <!-- 数据表格 -->\r\n <ele-data-table ref=\"table\" :config=\"table\" :choose.sync=\"choose\" :height=\"tbHeight\" highlight-current-row>\r\n <el-table-column type=\"selection\" width=\"45\" align=\"center\"/>\r\n <el-table-column type=\"index\" label=\"编号\" width=\"60\" align=\"center\" fixed=\"left\" show-overflow-tooltip/>\r\n <el-table-column prop=\"title\" label=\"配置标题\" sortable=\"custom\" show-overflow-tooltip min-width=\"120\"/>\r\n <el-table-column prop=\"code\" label=\"配置编码\" sortable=\"custom\" show-overflow-tooltip min-width=\"110\"/>\r\n <el-table-column prop=\"value\" label=\"配置值\" sortable=\"custom\" show-overflow-tooltip min-width=\"200\">\r\n <template slot-scope=\"{row}\">\r\n <div v-if=\"row.type=='image'\">\r\n <el-image\r\n style=\"width: 36px; height: 36px\"\r\n :src=\"row.value\"\r\n :preview-src-list=\"[row.value]\">\r\n </el-image>\r\n </div>\r\n <div v-else-if=\"row.type=='textarea'\">\r\n <el-input v-if=\"row.value\" v-model=\"row.value\" :rows=\"3\" disabled type=\"textarea\"/>\r\n </div>\r\n <div v-else-if=\"row.type=='password'\">\r\n <el-input v-if=\"row.value\" v-model=\"row.value\" disabled type=\"password\"/>\r\n </div>\r\n <div v-else>{{row.value}}</div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"note\" label=\"备注\" min-width=\"200px\"/>\r\n <el-table-column label=\"配置类型\" min-width=\"100\" align=\"center\">\r\n <template slot-scope=\"{row}\">\r\n <el-tag v-if=\"row.type === 'readonly'\" type=\"\" size=\"small\">只读文本</el-tag>\r\n <el-tag v-if=\"row.type === 'number'\" type=\"success\" size=\"small\">数字</el-tag>\r\n <el-tag v-if=\"row.type === 'text'\" type=\"info\" size=\"small\">单行文本</el-tag>\r\n <el-tag v-if=\"row.type === 'textarea'\" type=\"warning\" size=\"small\">多行文本</el-tag>\r\n <el-tag v-if=\"row.type === 'array'\" type=\"danger\" size=\"small\">数组</el-tag>\r\n <el-tag v-if=\"row.type === 'password'\" type=\"\" size=\"small\">密码</el-tag>\r\n <el-tag v-if=\"row.type === 'radio'\" type=\"success\" size=\"small\">单选框</el-tag>\r\n <el-tag v-if=\"row.type === 'checkbox'\" type=\"info\" size=\"small\">复选框</el-tag>\r\n <el-tag v-if=\"row.type === 'select'\" type=\"warning\" size=\"small\">下拉框</el-tag>\r\n <el-tag v-if=\"row.type === 'icon'\" type=\"danger\" size=\"small\">字体图标</el-tag>\r\n <el-tag v-if=\"row.type === 'date'\" type=\"\" size=\"small\">日期</el-tag>\r\n <el-tag v-if=\"row.type === 'daterange'\" type=\"\" size=\"small\">日期范围</el-tag>\r\n <el-tag v-if=\"row.type === 'datetime'\" type=\"success\" size=\"small\">时间</el-tag>\r\n <el-tag v-if=\"row.type === 'image'\" type=\"info\" size=\"small\">单张图片</el-tag>\r\n <el-tag v-if=\"row.type === 'images'\" type=\"\" size=\"small\">多张图片</el-tag>\r\n <el-tag v-if=\"row.type === 'file'\" type=\"success\" size=\"small\">单个文件</el-tag>\r\n <el-tag v-if=\"row.type === 'files'\" type=\"warning\" size=\"small\">多个文件</el-tag>\r\n <el-tag v-if=\"row.type === 'ueditor'\" type=\"danger\" size=\"small\">富文本编辑器</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"status\" label=\"配置状态\" sortable=\"custom\" :resizable=\"false\" min-width=\"120\">\r\n <template slot-scope=\"{row}\">\r\n <el-switch v-model=\"row.status\" @change=\"editStatus(row)\" :active-value=\"1\" :inactive-value=\"2\"/>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"sort\" label=\"排序号\" sortable=\"custom\" width=\"90px\"/>\r\n <el-table-column label=\"创建时间\" sortable=\"custom\" show-overflow-tooltip min-width=\"110\">\r\n <template slot-scope=\"{row}\">{{ row.create_time | toDateString }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" width=\"130px\" align=\"center\" :resizable=\"false\" fixed=\"right\">\r\n <template slot-scope=\"{row}\">\r\n <el-link @click=\"edit(row)\" icon=\"el-icon-edit\" type=\"primary\" :underline=\"false\" v-if=\"permission.includes('sys:config:edit')\">修改\r\n </el-link>\r\n <el-popconfirm title=\"确定要删除此配置吗?\" @confirm=\"remove(row)\" class=\"ele-action\">\r\n <el-link slot=\"reference\" icon=\"el-icon-delete\" type=\"danger\" :underline=\"false\" v-if=\"permission.includes('sys:config:delete')\">删除\r\n </el-link>\r\n </el-popconfirm>\r\n </template>\r\n </el-table-column>\r\n </ele-data-table>\r\n <!-- 编辑弹窗 -->\r\n <el-dialog :title=\"editForm.id?'修改配置':'添加配置'\" :visible.sync=\"showEdit\" width=\"1100px\"\r\n @closed=\"editForm={}\" :destroy-on-close=\"true\" custom-class=\"ele-dialog-form\" :lock-scroll=\"false\">\r\n <el-form :model=\"editForm\" ref=\"editForm\" :rules=\"editRules\" label-width=\"96px\">\r\n <el-row :gutter=\"15\">\r\n <el-col :sm=\"12\">\r\n <el-form-item label=\"配置标题:\" prop=\"title\">\r\n <el-input v-model=\"editForm.title\" placeholder=\"请输入配置标题\" clearable/>\r\n </el-form-item>\r\n <el-form-item label=\"配置类型:\" prop=\"type\">\r\n <el-select v-model=\"editForm.type\" placeholder=\"请选择配置类型\" class=\"ele-block\" clearable>\r\n <el-option label=\"只读文本\" value=\"readonly\"/>\r\n <el-option label=\"数字\" value=\"number\"/>\r\n <el-option label=\"单行文本\" value=\"text\"/>\r\n <el-option label=\"多行文本\" value=\"textarea\"/>\r\n <el-option label=\"数组\" value=\"array\"/>\r\n <el-option label=\"密码\" value=\"password\"/>\r\n <el-option label=\"单选框\" value=\"radio\"/>\r\n <el-option label=\"复选框\" value=\"checkbox\"/>\r\n <el-option label=\"下拉框\" value=\"select\"/>\r\n <el-option label=\"字体图标\" value=\"icon\"/>\r\n <el-option label=\"日期\" value=\"date\"/>\r\n <el-option label=\"日期范围\" value=\"daterange\"/>\r\n <el-option label=\"时间\" value=\"datetime\"/>\r\n <el-option label=\"单张图片\" value=\"image\"/>\r\n <!-- <el-option label=\"多张图片\" value=\"images\"/>-->\r\n <!-- <el-option label=\"单个文件\" value=\"file\"/>-->\r\n <!-- <el-option label=\"多个文件\" value=\"files\"/>-->\r\n <el-option label=\"富文本编辑器\" value=\"ueditor\"/>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"配置值:\" prop=\"value\">\r\n <el-input v-if=\"editForm.type=='textarea'\" v-model=\"editForm.value\" placeholder=\"请输入配置值\" :rows=\"3\" type=\"textarea\" clearable/>\r\n <el-date-picker v-else-if=\"editForm.type=='date'\"\r\n v-model=\"editForm.value\"\r\n type=\"date\"\r\n placeholder=\"选择日期\"\r\n size=\"small\"\r\n value-format=\"yyyy-MM-dd\"\r\n format=\"yyyy-MM-dd\">\r\n </el-date-picker>\r\n <uploadImage v-else-if=\"editForm.type=='image'\" :limit=\"1\" v-model=\"editForm.value\"></uploadImage>\r\n <el-date-picker v-else-if=\"editForm.type=='daterange'\"\r\n v-model=\"editForm.value\"\r\n type=\"daterange\"\r\n align=\"center\"\r\n unlink-panels\r\n range-separator=\"至\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n size=\"small\"\r\n value-format=\"yyyy-MM-dd\"\r\n format=\"yyyy-MM-dd\">\r\n </el-date-picker>\r\n <el-input v-else v-model=\"editForm.value\" placeholder=\"请输入配置值\" clearable/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :sm=\"12\">\r\n <el-form-item label=\"配置编码:\" prop=\"code\">\r\n <el-input v-model=\"editForm.code\" placeholder=\"请输入配置编码\" clearable/>\r\n </el-form-item>\r\n <el-form-item label=\"状态:\">\r\n <el-radio-group v-model=\"editForm.status\">\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 <el-form-item label=\"排序号:\" prop=\"sort\">\r\n <el-input-number v-model=\"editForm.sort\" controls-position=\"right\" :min=\"0\"\r\n placeholder=\"请输入排序号\" class=\"ele-fluid ele-text-left\"/>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-form-item label=\"配置项:\">\r\n <el-input v-model=\"editForm.options\" placeholder=\"请输入配置项\" :rows=\"3\" type=\"textarea\"/>\r\n </el-form-item>\r\n <el-form-item label=\"备注:\">\r\n <el-input v-model=\"editForm.note\" placeholder=\"请输入备注\" :rows=\"3\" type=\"textarea\"/>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button @click=\"showEdit=false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"save\">保存</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport uploadImage from '@/components/uploadImage'\r\nexport default {\r\n name: \"SysConfigData\",\r\n components: {uploadImage},\r\n props: {\r\n configgroupId: Number, // 配置id\r\n tbHeight: String // 表格高度\r\n },\r\n data() {\r\n return {\r\n table: {url: '/config/index', where: {configgroupId: this.configgroupId}, page: {limit: 20}}, // 表格配置\r\n choose: [], // 表格选中数据\r\n showEdit: false, // 是否显示表单弹窗\r\n editForm: {config_group_id:0}, // 表单数据\r\n pickerOptions: {\r\n shortcuts: [{\r\n text: '最近一周',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }, {\r\n text: '最近一个月',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }, {\r\n text: '最近三个月',\r\n onClick(picker) {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);\r\n picker.$emit('pick', [start, end]);\r\n }\r\n }]\r\n },\r\n editRules: { // 表单验证规则\r\n title: [\r\n {required: true, message: '请输入配置标题', trigger: 'blur'}\r\n ],\r\n code: [\r\n {required: true, message: '请输入配置编码', trigger: 'blur'}\r\n ],\r\n sort: [\r\n {required: true, message: '请输入排序号', trigger: 'blur'}\r\n ]\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapGetters([\"permission\"]),\r\n },\r\n methods: {\r\n /* 显示编辑 */\r\n edit(row) {\r\n this.editForm = Object.assign({}, row);\r\n this.showEdit = true;\r\n },\r\n /* 保存编辑 */\r\n save() {\r\n this.$refs['editForm'].validate((valid) => {\r\n if (valid) {\r\n const loading = this.$loading({lock: true});\r\n // 设置配置类型\r\n this.editForm.config_group_id = this.configgroupId;\r\n this.$http.post('/config/edit', this.editForm).then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n this.showEdit = false;\r\n this.$message({type: 'success', message: res.data.msg});\r\n this.$refs.table.reload();\r\n } else {\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n },\r\n /* 删除 */\r\n remove(row) {\r\n if (!row) { // 批量删除\r\n if (this.choose.length === 0) return this.$message.error('请至少选择一条数据');\r\n let ids = this.choose.map(d => d.id);\r\n this.$confirm('确定要删除选中的配置吗?', '提示', {type: 'warning'}).then(() => {\r\n const loading = this.$loading({lock: true});\r\n this.$http.post('/config/delete', {id: ids}).then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n this.$message({type: 'success', message: res.data.msg});\r\n this.$refs.table.reload();\r\n } else {\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n }).catch(() => 0);\r\n } else { // 单个删除\r\n const loading = this.$loading({lock: true});\r\n this.$http.post('/config/delete', {id:row.id}).then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n this.$message({type: 'success', message: res.data.msg});\r\n this.$refs.table.reload();\r\n } else {\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n }\r\n },\r\n /* 更改状态 */\r\n editStatus(row) {\r\n const loading = this.$loading({lock: true});\r\n let params = Object.assign({}, row);\r\n this.$http.post('/config/status', params).then(res => {\r\n loading.close();\r\n if (res.data.code === 0) {\r\n this.$message({type: 'success', message: res.data.msg});\r\n } else {\r\n row.status = !row.status ? 2 : 1;\r\n this.$message.error(res.data.msg);\r\n }\r\n }).catch(e => {\r\n loading.close();\r\n this.$message.error(e.message);\r\n });\r\n },\r\n },\r\n watch: {\r\n /* 监听配置id变化 */\r\n configgroupId() {\r\n this.table.where = {configgroupId: this.configgroupId};\r\n this.$refs.table.reload();\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.el-date-editor--daterange.el-input__inner {\r\n width: 215px;\r\n}\r\n</style>"]}]}