| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\setting\\multiLanguage\\langList.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\setting\\multiLanguage\\langList.vue","mtime":1761614939057},{"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:DQppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOw0KaW1wb3J0IHsgbGFuZ0NvZGVMaXN0LCBsYW5nQ29kZUluZm8sIGxhbmdDb2RlU2V0dGluZ1NhdmUsIGxhbmdDb2RlVHJhbnNsYXRlIH0gZnJvbSAnQC9hcGkvc2V0dGluZyc7DQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgYWRkbGFuZ01vZGFsOiBmYWxzZSwNCiAgICAgIHRyYVRhYkxvYWRpbmc6IGZhbHNlLA0KICAgICAgbGFuZ1R5cGU6IHt9LA0KICAgICAgZm9ybVZhbGlkYXRlOiB7DQogICAgICAgIGlzX2FkbWluOiAwLA0KICAgICAgICB0eXBlX2lkOiAxLA0KICAgICAgICByZW1hcmtzOiAnJywNCiAgICAgICAgcGFnZTogMSwNCiAgICAgICAgbGltaXQ6IDIwLA0KICAgICAgfSwNCiAgICAgIHRvdGFsOiAwLA0KICAgICAgRm9ybUxvYWRpbmc6IHRydWUsDQogICAgICBsb2FkaW5nOiBmYWxzZSwNCiAgICAgIHJ1bGVWYWxpZGF0ZTogew0KICAgICAgICBjb2RlOiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+ivt+i+k+WFpeeKtuaAgeeggS/mloflrZcnLCB0cmlnZ2VyOiAnYmx1cicgfV0sDQogICAgICAgIHJlbWFya3M6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn6K+36L6T5YWl5paH5a2XJywgdHJpZ2dlcjogJ2JsdXInIH1dLA0KICAgICAgfSwNCiAgICAgIGxhbmdDb2x1bW5zOiBbDQogICAgICAgIHsNCiAgICAgICAgICB0aXRsZTogJ+ivreiogOexu+WeiycsDQogICAgICAgICAga2V5OiAnbGFuZ3VhZ2VfbmFtZScsDQogICAgICAgICAgd2lkdGg6IDEyMCwNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIHRpdGxlOiAn5a+55bqU6K+t6KiA57+76K+RJywNCiAgICAgICAgICBzbG90OiAnbGFuZ19leHBsYWluJywNCiAgICAgICAgICBtaW5XaWR0aDogMjUwLA0KICAgICAgICB9LA0KICAgICAgXSwNCiAgICAgIGxhbmdEYXRhOiBbXSwNCiAgICAgIGxhbmdGb3JtRGF0YTogew0KICAgICAgICBpc19hZG1pbjogMCwNCiAgICAgICAgY29kZTogJycsDQogICAgICAgIHJlbWFya3M6ICcnLA0KICAgICAgICBlZGl0OiAwLA0KICAgICAgICBsaXN0OiBbXSwNCiAgICAgIH0sDQogICAgICB0YWJMaXN0OiBbXSwNCiAgICAgIEZyb21EYXRhOiBudWxsLA0KICAgICAgZXh0cmFjdElkOiAwLA0KICAgICAgY29kZTogbnVsbCwNCiAgICB9Ow0KICB9LA0KICBjb21wdXRlZDogew0KICAgIC4uLm1hcFN0YXRlKCdtZWRpYScsIFsnaXNNb2JpbGUnXSksDQogICAgbGFiZWxXaWR0aCgpIHsNCiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gdW5kZWZpbmVkIDogJzgwcHgnOw0KICAgIH0sDQogICAgbGFiZWxQb3NpdGlvbigpIHsNCiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gJ3RvcCcgOiAncmlnaHQnOw0KICAgIH0sDQogIH0sDQogIG1vdW50ZWQoKSB7DQogICAgdGhpcy5nZXRMaXN0KCk7DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICB0cmFuc2xhdGUoKSB7DQogICAgICBpZiAoIXRoaXMubGFuZ0Zvcm1EYXRhLnJlbWFya3MudHJpbSgpKSB7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOi+k+WFpee/u+ivkeWGheWuuScpOw0KICAgICAgfQ0KICAgICAgdGhpcy50cmFUYWJMb2FkaW5nID0gdHJ1ZTsNCiAgICAgIGxhbmdDb2RlVHJhbnNsYXRlKHsNCiAgICAgICAgdGV4dDogdGhpcy5sYW5nRm9ybURhdGEucmVtYXJrcywNCiAgICAgIH0pDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmxhbmdGb3JtRGF0YS5saXN0Lm1hcCgoZSkgPT4gew0KICAgICAgICAgICAgZS5sYW5nX2V4cGxhaW4gPSByZXMuZGF0YVtlLnR5cGVfaWRdOw0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHRoaXMudHJhVGFiTG9hZGluZyA9IGZhbHNlOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIHRoaXMudHJhVGFiTG9hZGluZyA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZXJyLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgYWRkKCkgew0KICAgICAgdGhpcy5sYW5nRm9ybURhdGEubGlzdCA9IHRoaXMubGFuZ1R5cGUubGFuZ1R5cGUubWFwKChlKSA9PiB7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgbGFuZ3VhZ2VfbmFtZTogZS50aXRsZSwNCiAgICAgICAgICBsYW5nX2V4cGxhaW46ICcnLA0KICAgICAgICAgIHJlbWFya3M6ICcnLA0KICAgICAgICAgIHR5cGVfaWQ6IGUudmFsdWUsDQogICAgICAgIH07DQogICAgICB9KTsNCiAgICAgIHRoaXMuYWRkbGFuZ01vZGFsID0gdHJ1ZTsNCiAgICB9LA0KICAgIG9rKCkgew0KICAgICAgaWYgKCF0aGlzLmxhbmdGb3JtRGF0YS5yZW1hcmtzLnRyaW0oKSkgew0KICAgICAgICB0aGlzLkZvcm1Mb2FkaW5nID0gZmFsc2U7DQogICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgICB0aGlzLkZvcm1Mb2FkaW5nID0gdHJ1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7flhYjovpPlhaXor63oqIDor7TmmI4nKTsNCiAgICAgIH0NCiAgICAgIGxhbmdDb2RlU2V0dGluZ1NhdmUodGhpcy5sYW5nRm9ybURhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmFkZGxhbmdNb2RhbCA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsNCiAgICAgICAgICB0aGlzLmdldExpc3QoKTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLkZvcm1Mb2FkaW5nID0gZmFsc2U7DQogICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gew0KICAgICAgICAgICAgdGhpcy5Gb3JtTG9hZGluZyA9IHRydWU7DQogICAgICAgICAgfSk7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihlcnIubXNnKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBlZGl0KHJvdykgew0KICAgICAgdGhpcy5sYW5nRm9ybURhdGEuaXNfYWRtaW4gPSB0aGlzLmZvcm1WYWxpZGF0ZS5pc19hZG1pbjsNCiAgICAgIHRoaXMuY29kZSA9IHJvdy5jb2RlOw0KICAgICAgbGFuZ0NvZGVJbmZvKHsgY29kZTogcm93LmNvZGUgfSkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMubGFuZ0Zvcm1EYXRhLmxpc3QgPSByZXMuZGF0YS5saXN0Ow0KICAgICAgICAgIHRoaXMubGFuZ0Zvcm1EYXRhLmNvZGUgPSByZXMuZGF0YS5jb2RlOw0KICAgICAgICAgIHRoaXMubGFuZ0Zvcm1EYXRhLnJlbWFya3MgPSByZXMuZGF0YS5yZW1hcmtzOw0KICAgICAgICAgIHRoaXMubGFuZ0Zvcm1EYXRhLmVkaXQgPSAxOw0KICAgICAgICAgIHRoaXMuYWRkbGFuZ01vZGFsID0gdHJ1ZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKGVyci5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOWIoOmZpA0KICAgIGRlbChyb3csIHRpdCwgbnVtKSB7DQogICAgICBsZXQgZGVsZnJvbURhdGEgPSB7DQogICAgICAgIHRpdGxlOiB0aXQsDQogICAgICAgIG51bTogbnVtLA0KICAgICAgICB1cmw6IGBzZXR0aW5nL2xhbmdfY29kZS9kZWwvJHtyb3cuaWR9YCwNCiAgICAgICAgbWV0aG9kOiAnREVMRVRFJywNCiAgICAgICAgaWRzOiAnJywNCiAgICAgIH07DQogICAgICB0aGlzLiRtb2RhbFN1cmUoZGVsZnJvbURhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7DQogICAgICAgICAgdGhpcy50YWJMaXN0LnNwbGljZShudW0sIDEpOw0KICAgICAgICAgIC8vIHRoaXMuZ2V0TGlzdCgpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgbW9kYWxDaGFuZ2UoKSB7DQogICAgICB0aGlzLmxhbmdGb3JtRGF0YSA9IHsNCiAgICAgICAgaXNfYWRtaW46IDAsDQogICAgICAgIG5hbWU6ICcnLA0KICAgICAgICBjb2RlOiAnJywNCiAgICAgICAgbGlzdDogW10sDQogICAgICB9Ow0KICAgICAgdGhpcy5jb2RlID0gbnVsbDsNCiAgICB9LA0KICAgIC8vIOmAieaLqQ0KICAgIHNlbENoYW5nZSgpIHsNCiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLnBhZ2UgPSAxOw0KICAgICAgdGhpcy5nZXRMaXN0KCk7DQogICAgfSwNCiAgICAvLyDliJfooagNCiAgICBnZXRMaXN0KCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgIGxhbmdDb2RlTGlzdCh0aGlzLmZvcm1WYWxpZGF0ZSkNCiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgICAgIHRoaXMudGFiTGlzdCA9IHJlcy5kYXRhLmxpc3Q7DQogICAgICAgICAgdGhpcy50b3RhbCA9IHJlcy5kYXRhLmNvdW50Ow0KICAgICAgICAgIHRoaXMubGFuZ1R5cGUgPSByZXMuZGF0YS5sYW5nVHlwZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICB9LA0KfTsNCg=="},{"version":3,"sources":["langList.vue"],"names":[],"mappings":";AA+IA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"langList.vue","sourceRoot":"src/pages/setting/multiLanguage","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mb-16\" :body-style=\"{ padding: 0 }\">\r\n <div class=\"padding-add\">\r\n <el-form :model=\"formValidate\" :label-width=\"labelWidth\" label-position=\"right\" @submit.native.prevent inline>\r\n <el-form-item label=\"语言分类:\">\r\n <el-select v-model=\"formValidate.is_admin\" clearable @change=\"selChange\" class=\"form_content_width\">\r\n <el-option\r\n v-for=\"(item, index) in langType.isAdmin\"\r\n :key=\"index\"\r\n :label=\"item.title\"\r\n :value=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"语言类型:\">\r\n <el-select v-model=\"formValidate.type_id\" clearable @change=\"selChange\" class=\"form_content_width\">\r\n <el-option\r\n v-for=\"(item, index) in langType.langType\"\r\n :key=\"index\"\r\n :label=\"item.title\"\r\n :value=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"搜索:\">\r\n <el-input\r\n clearable\r\n placeholder=\"请输入语言备注\"\r\n v-model=\"formValidate.remarks\"\r\n class=\"form_content_width\"\r\n />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" class=\"userSearch\" v-db-click @click=\"selChange\">搜索</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n </el-card>\r\n <el-alert type=\"warning\" :closable=\"false\">\r\n <template slot=\"title\">\r\n <p class=\"alert_title\">页面语言</p>\r\n 添加页面语言,添加完成之后状态码为中文文字,移动端页面使用 $t(`xxxx`),js文件中使用 this.t(`xxxx`) 或者使用\r\n that.t(`xxxx`) 实现语言的切换<br />\r\n <br />\r\n <p class=\"alert_title\">接口语言</p>\r\n 添加接口语言,添加完成之后状态码为6位数字,接口返回提示信息时,直接返回对应的错误码即可实现语言的切换\r\n </template>\r\n </el-alert>\r\n <el-card class=\"mt14\" :bordered=\"false\" shadow=\"never\">\r\n <el-row class=\"mb14\">\r\n <el-col>\r\n <el-button type=\"primary\" v-db-click @click=\"add\">添加语句</el-button>\r\n </el-col>\r\n </el-row>\r\n <el-table ref=\"table\" :data=\"tabList\" class=\"ivu-mt\" v-loading=\"loading\" empty-text=\"暂无数据\">\r\n <el-table-column label=\"编号\" 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=\"230\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.remarks }}</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.lang_explain }}</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.code }}</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.language_name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"170\">\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 <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"formValidate.page\"\r\n :limit.sync=\"formValidate.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n <el-dialog :visible.sync=\"addlangModal\" width=\"720px\" title=\"添加需要翻译的语句\" @closed=\"modalChange\">\r\n <el-form ref=\"langFormData\" :model=\"langFormData\" :rules=\"ruleValidate\">\r\n <el-form-item label=\"应用端:\" class=\"mb20\" label-width=\"120px\">\r\n <el-radio-group type=\"button\" v-model=\"langFormData.is_admin\" class=\"mr15\">\r\n <el-radio :label=\"item.value\" v-for=\"(item, index) in langType.isAdmin\" :key=\"index\">{{\r\n item.title\r\n }}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-input v-model=\"langFormData.edit\" v-show=\"false\"></el-input>\r\n <el-form-item label=\"需要翻译的语句:\" prop=\"remarks\" class=\"mb20\">\r\n <el-input\r\n v-model=\"langFormData.remarks\"\r\n placeholder=\"请输入需要添加翻译的语句\"\r\n style=\"width: 330px\"\r\n search\r\n @on-search=\"translate\"\r\n >\r\n <el-button type=\"primary\" slot=\"append\" v-db-click @click=\"translate\">翻译</el-button>\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item prop=\"remark\" class=\"mb20\">\r\n <el-table ref=\"langTable\" v-loading=\"traTabLoading\" :data=\"langFormData.list\" empty-text=\"暂无数据\">\r\n <el-table-column label=\"语言类型\" width=\"140\">\r\n <template slot-scope=\"scope\">\r\n <span> {{ scope.row.language_name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"对应语言翻译\" min-width=\"250\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"scope.row.lang_explain\" class=\"priceBox\"></el-input>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-form-item>\r\n </el-form>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"addlangModal = false\">取消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"ok\">确定</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport { langCodeList, langCodeInfo, langCodeSettingSave, langCodeTranslate } from '@/api/setting';\r\n\r\nexport default {\r\n data() {\r\n return {\r\n addlangModal: false,\r\n traTabLoading: false,\r\n langType: {},\r\n formValidate: {\r\n is_admin: 0,\r\n type_id: 1,\r\n remarks: '',\r\n page: 1,\r\n limit: 20,\r\n },\r\n total: 0,\r\n FormLoading: true,\r\n loading: false,\r\n ruleValidate: {\r\n code: [{ required: true, message: '请输入状态码/文字', trigger: 'blur' }],\r\n remarks: [{ required: true, message: '请输入文字', trigger: 'blur' }],\r\n },\r\n langColumns: [\r\n {\r\n title: '语言类型',\r\n key: 'language_name',\r\n width: 120,\r\n },\r\n {\r\n title: '对应语言翻译',\r\n slot: 'lang_explain',\r\n minWidth: 250,\r\n },\r\n ],\r\n langData: [],\r\n langFormData: {\r\n is_admin: 0,\r\n code: '',\r\n remarks: '',\r\n edit: 0,\r\n list: [],\r\n },\r\n tabList: [],\r\n FromData: null,\r\n extractId: 0,\r\n code: null,\r\n };\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 mounted() {\r\n this.getList();\r\n },\r\n methods: {\r\n translate() {\r\n if (!this.langFormData.remarks.trim()) {\r\n return this.$message.warning('请先输入翻译内容');\r\n }\r\n this.traTabLoading = true;\r\n langCodeTranslate({\r\n text: this.langFormData.remarks,\r\n })\r\n .then((res) => {\r\n this.langFormData.list.map((e) => {\r\n e.lang_explain = res.data[e.type_id];\r\n });\r\n this.traTabLoading = false;\r\n })\r\n .catch((err) => {\r\n this.traTabLoading = false;\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n add() {\r\n this.langFormData.list = this.langType.langType.map((e) => {\r\n return {\r\n language_name: e.title,\r\n lang_explain: '',\r\n remarks: '',\r\n type_id: e.value,\r\n };\r\n });\r\n this.addlangModal = true;\r\n },\r\n ok() {\r\n if (!this.langFormData.remarks.trim()) {\r\n this.FormLoading = false;\r\n this.$nextTick(() => {\r\n this.FormLoading = true;\r\n });\r\n return this.$message.error('请先输入语言说明');\r\n }\r\n langCodeSettingSave(this.langFormData)\r\n .then((res) => {\r\n this.addlangModal = false;\r\n this.$message.success(res.msg);\r\n this.getList();\r\n })\r\n .catch((err) => {\r\n this.FormLoading = false;\r\n this.$nextTick(() => {\r\n this.FormLoading = true;\r\n });\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n edit(row) {\r\n this.langFormData.is_admin = this.formValidate.is_admin;\r\n this.code = row.code;\r\n langCodeInfo({ code: row.code })\r\n .then((res) => {\r\n this.langFormData.list = res.data.list;\r\n this.langFormData.code = res.data.code;\r\n this.langFormData.remarks = res.data.remarks;\r\n this.langFormData.edit = 1;\r\n this.addlangModal = true;\r\n })\r\n .catch((err) => {\r\n this.loading = false;\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: `setting/lang_code/del/${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.tabList.splice(num, 1);\r\n // this.getList();\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n modalChange() {\r\n this.langFormData = {\r\n is_admin: 0,\r\n name: '',\r\n code: '',\r\n list: [],\r\n };\r\n this.code = null;\r\n },\r\n // 选择\r\n selChange() {\r\n this.formValidate.page = 1;\r\n this.getList();\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n langCodeList(this.formValidate)\r\n .then(async (res) => {\r\n this.loading = false;\r\n this.tabList = res.data.list;\r\n this.total = res.data.count;\r\n this.langType = res.data.langType;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\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.ivu-mt .type .item {\r\n margin: 3px 0;\r\n}\r\n.tabform {\r\n margin-bottom: 10px;\r\n}\r\n.Refresh {\r\n font-size: 12px;\r\n color: var(--prev-color-primary);\r\n cursor: pointer;\r\n}\r\n.ivu-form-item {\r\n margin-bottom: 10px;\r\n}\r\n.status ::v-deep .item ~ .item {\r\n margin-left: 6px;\r\n}\r\n.status ::v-deep .statusVal {\r\n margin-bottom: 7px;\r\n}\r\n\r\n/* .ivu-mt ::v-deep .ivu-table-header */\r\n/* border-top:1px dashed #ddd!important */\r\n.type {\r\n padding: 3px 0;\r\n box-sizing: border-box;\r\n}\r\n.tabBox_img {\r\n width: 36px;\r\n height: 36px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n.mb20 ::v-deep .ivu-table-wrapper > .ivu-spin-fix {\r\n border: none;\r\n}\r\n</style>\r\n"]}]}
|