| 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\\system\\configTab\\list.vue?vue&type=style&index=0&id=b9286974&lang=scss&scoped=true","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\configTab\\list.vue","mtime":1761185180209},{"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:DQoudGFic05hbWUgew0KICBtYXJnaW4tYm90dG9tOiAxNXB4Ow0KfQ0KLnZhbEJveCB7DQogIG1hcmdpbjogMTBweCAwOw0KfQ0KLnZhbFBpY2JveCB7DQogIGJvcmRlcjogMXB4IHNvbGlkICNlN2VhZWM7DQp9DQoudmFsUGljYm94X3BpYyB7DQogIHdpZHRoOiAyMDBweDsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgZGlzcGxheTogZmxleDsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQoNCiAgaW1nIHsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDEwMCU7DQogIH0NCiAgOjp2LWRlZXAgLml2dS1pY29uLW1kLWRvY3VtZW50IHsNCiAgICBmb250LXNpemU6IDcwcHg7DQogICAgY29sb3I6ICNkYWRhZGE7DQogIH0NCn0NCi52YWxQaWNib3hfc3Agew0KICBkaXNwbGF5OiBibG9jazsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICB3aWR0aDogMjAwcHg7DQogIHBhZGRpbmc6IDdweDsNCiAgYm94LXNpemluZzogYm9yZGVyLWJveDsNCiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlN2VhZWM7DQp9DQo="},{"version":3,"sources":["list.vue"],"names":[],"mappings":";AAiWA;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","file":"list.vue","sourceRoot":"src/pages/system/configTab","sourcesContent":["<template>\r\n <div>\r\n <pages-header\r\n ref=\"pageHeader\"\r\n :title=\"`配置列表${$route.query.config_name ? ` - ` + $route.query.config_name : ''}`\"\r\n :backUrl=\"$routeProStr + '/system/config/system_config_tab/index'\"\r\n ></pages-header>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"mt16\">\r\n <el-row v-if=\"!$route.query.config_name\">\r\n <el-col v-bind=\"grid\">\r\n <!-- <el-button type=\"primary\" v-db-click @click=\"goIndex\">配置分类</el-button> -->\r\n <el-button type=\"primary\" v-db-click @click=\"configureAdd\">添加配置</el-button>\r\n </el-col>\r\n </el-row>\r\n <el-table\r\n :data=\"classList\"\r\n ref=\"table\"\r\n v-loading=\"loading\"\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n class=\"mt14\"\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.info }}</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.menu_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 <span>{{ scope.row.type }}</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\r\n v-if=\"\r\n scope.row.type === 'text' ||\r\n scope.row.type === 'textarea' ||\r\n scope.row.type === 'radio' ||\r\n scope.row.type === 'checkbox'\r\n \"\r\n >{{ scope.row.value }}</span\r\n >\r\n <div class=\"valBox acea-row\" v-if=\"scope.row.type === 'upload' && scope.row.upload_type === 3\">\r\n <div v-if=\"scope.row.value.length\">\r\n <div\r\n class=\"valPicbox acea-scope.row scope.row-column-around\"\r\n v-for=\"(item, index) in scope.row.value\"\r\n :key=\"index\"\r\n >\r\n <div class=\"valPicbox_pic\"><i class=\"el-icon-document\" /></div>\r\n <span class=\"valPicbox_sp\">{{ item.filename }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"valBox acea-row\" v-if=\"scope.row.type === 'upload' && scope.row.upload_type !== 3\">\r\n <div v-if=\"scope.row.value.length\">\r\n <div class=\"valPicbox acea-row row-column-around\" v-for=\"(item, index) in scope.row.value\" :key=\"index\">\r\n <div class=\"valPicbox_pic\"><img v-lazy=\"item.filepath\" /></div>\r\n <span class=\"valPicbox_sp\">{{ item.filename }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <span v-if=\"scope.row.type === 'switch'\">{{ scope.row.value == 1 ? '开启' : '关闭' }}</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.link_data }}</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.config_tab_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-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=\"onchangeIsShow(scope.row)\"\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=\"操作\" fixed=\"right\" width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"edit(scope.row)\">编辑</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"del(scope.row, '删除分类', scope.$index)\">删除</a>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-card>\r\n\r\n <!-- 新建 表单-->\r\n <el-dialog\r\n :visible.sync=\"modals2\"\r\n :title=\"`${rowId ? '修改' : '添加'}配置字段`\"\r\n :close-on-click-modal=\"false\"\r\n :show-close=\"true\"\r\n width=\"720px\"\r\n >\r\n <el-tabs v-if=\"!rowId\" v-model=\"typeFrom.type\" @tab-click=\"onhangeTab\" class=\"tabsName\">\r\n <el-tab-pane label=\"文本框 \" name=\"0\"></el-tab-pane>\r\n <el-tab-pane label=\"多行文本框\" name=\"1\"></el-tab-pane>\r\n <el-tab-pane label=\"单选框\" name=\"2\"></el-tab-pane>\r\n <el-tab-pane label=\"文件上传\" name=\"3\"></el-tab-pane>\r\n <el-tab-pane label=\"多选框\" name=\"4\"></el-tab-pane>\r\n <el-tab-pane label=\"下拉框\" name=\"5\"></el-tab-pane>\r\n <el-tab-pane label=\"开关\" name=\"6\"></el-tab-pane>\r\n </el-tabs>\r\n <form-create\r\n v-if=\"rules.length != 0\"\r\n :rule=\"rules\"\r\n v-model=\"fapi\"\r\n :option=\"config\"\r\n @submit=\"onSubmit\"\r\n class=\"formBox\"\r\n ref=\"fc\"\r\n handleIcon=\"false\"\r\n ></form-create>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"modals2 = false\">取消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"submitForm\">确定</el-button>\r\n </span>\r\n </el-dialog>\r\n <!-- 编辑表单-->\r\n <edit-from ref=\"edits\" :FromData=\"FromData\" @submitFail=\"submitFail\"></edit-from>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { configTabListApi, configTabAddApi, configTabEditApi, configSetStatusApi } from '@/api/system';\r\nimport formCreate from '@form-create/element-ui';\r\nimport editFrom from '@/components/from/from';\r\nimport request from '@/libs/request';\r\nexport default {\r\n name: 'list',\r\n components: { formCreate: formCreate.$form(), editFrom },\r\n data() {\r\n return {\r\n modals2: false,\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 loading: false,\r\n formValidate: {\r\n tab_id: 0,\r\n config_name: '',\r\n page: 1,\r\n limit: 20,\r\n },\r\n config: {\r\n form: {\r\n labelWidth: '100px',\r\n },\r\n resetBtn: false,\r\n submitBtn: false,\r\n global: {\r\n upload: {\r\n props: {\r\n onSuccess(res, file) {\r\n if (res.status === 200) {\r\n file.url = res.data.src;\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n },\r\n },\r\n },\r\n },\r\n },\r\n total: 0,\r\n FromData: null,\r\n FromRequestData: {},\r\n modalTitleSs: '',\r\n classList: [],\r\n num: 0,\r\n typeFrom: {\r\n type: 0,\r\n tab_id: this.$route.params.id,\r\n },\r\n rules: [],\r\n fapi: null,\r\n rowId: 0,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler: function (val, oldVal) {\r\n this.getList();\r\n },\r\n // 深度观察监听\r\n deep: true,\r\n },\r\n },\r\n mounted() {\r\n this.getList();\r\n },\r\n methods: {\r\n // 点击tab\r\n onhangeTab() {\r\n this.classAdd();\r\n },\r\n submitForm() {\r\n this.fapi.submit();\r\n },\r\n // 新增表单\r\n classAdd() {\r\n configTabAddApi(this.typeFrom)\r\n .then(async (res) => {\r\n if (res.data.status === false) {\r\n return this.$authLapse(res.data);\r\n }\r\n let data = res.data || {};\r\n this.FromRequestData = { action: data.action, method: data.method };\r\n this.rules = data.rules;\r\n this.modals2 = true;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 编辑表单\r\n edit(row) {\r\n this.rowId = row.id;\r\n configTabEditApi(row.id)\r\n .then(async (res) => {\r\n if (res.data.status === false) {\r\n return this.$authLapse(res.data);\r\n }\r\n let data = res.data || {};\r\n this.FromRequestData = { action: data.action, method: data.method };\r\n this.rules = data.rules;\r\n this.$refs.edits.modals = true;\r\n this.modals2 = true;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 提交表单\r\n onSubmit(formData) {\r\n request({\r\n url: this.FromRequestData.action,\r\n method: this.FromRequestData.method,\r\n data: formData,\r\n })\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n setTimeout(() => {\r\n this.modals2 = false;\r\n }, 1000);\r\n setTimeout(() => {\r\n this.getList();\r\n }, 1500);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 修改成功\r\n submitFail() {\r\n this.getList();\r\n },\r\n // 跳转到配置分类页面\r\n goIndex() {\r\n this.$router.push({\r\n path: this.$routeProStr + '/system/config/system_config_tab/index',\r\n });\r\n },\r\n // 添加配置\r\n configureAdd() {\r\n // this.modals2 = true;\r\n this.rowId = 0;\r\n this.typeFrom.type = 0;\r\n this.classAdd();\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n this.formValidate.tab_id = this.$route.params.id;\r\n this.formValidate.config_name = this.$route.query.config_name;\r\n configTabListApi(this.formValidate)\r\n .then(async (res) => {\r\n let data = res.data;\r\n this.classList = data.list;\r\n this.total = data.count;\r\n this.loading = false;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n pageChange(index) {\r\n this.formValidate.page = index;\r\n this.getList();\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: `/setting/config/${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.classList.splice(num, 1);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 修改是否显示\r\n onchangeIsShow(row) {\r\n configSetStatusApi(row.id, row.status)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\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 lang=\"scss\" scoped>\r\n.tabsName {\r\n margin-bottom: 15px;\r\n}\r\n.valBox {\r\n margin: 10px 0;\r\n}\r\n.valPicbox {\r\n border: 1px solid #e7eaec;\r\n}\r\n.valPicbox_pic {\r\n width: 200px;\r\n height: 100px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n ::v-deep .ivu-icon-md-document {\r\n font-size: 70px;\r\n color: #dadada;\r\n }\r\n}\r\n.valPicbox_sp {\r\n display: block;\r\n font-size: 12px;\r\n width: 200px;\r\n padding: 7px;\r\n box-sizing: border-box;\r\n border-top: 1px solid #e7eaec;\r\n}\r\n</style>\r\n"]}]}
|