7 changed files with 148 additions and 469 deletions
-
7src/api/sysLanguageMenu.js
-
10src/views/main-navbar.vue
-
23src/views/modules/knifemold/receive.vue
-
30src/views/modules/sys/language/common.vue
-
438src/views/modules/sys/language/menu.vue
-
93src/views/modules/sys/menu-language.vue
-
16src/views/modules/sys/menu.vue
@ -0,0 +1,7 @@ |
|||||
|
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
// 获取 语言列表
|
||||
|
export const searchMenuLanguageById = data => createAPI(`sys/menu/searchMenuLanguageById`,'post',data) |
||||
|
|
||||
|
// 保存语言
|
||||
|
export const saveMenuLanguage = data => createAPI(`sys/menu/saveMenuLanguage`,'post',data) |
||||
@ -1,438 +0,0 @@ |
|||||
<template> |
|
||||
<div class="mod-config"> |
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> |
|
||||
<el-form-item> |
|
||||
<el-input v-model="dataForm.key" :placeholder="$t('commonsearch')" clearable></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item> |
|
||||
<el-button @click="getDataList()" type="primary">{{$t('commonsearch')}}</el-button> |
|
||||
<el-button v-if="isAuth(':prd:save')" type="primary" @click="addOrUpdateHandle()">{{$t('commonadd')}} |
|
||||
</el-button> |
|
||||
<el-button @click="saveColumnList()" type="primary" v-show="showDefault">设置默认配置</el-button> |
|
||||
<el-button @click="userSetting" type="primary">{{$t('commonsettingTable')}}</el-button> |
|
||||
<download-excel |
|
||||
:data="dataList" |
|
||||
class="el-button el-button--primary el-button--medium" |
|
||||
name=" "> |
|
||||
{{$t('commondownload')}} |
|
||||
</download-excel> |
|
||||
|
|
||||
<el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()" |
|
||||
:disabled="dataListSelections.length <= 0">{{$t('commondeleteList')}} |
|
||||
</el-button> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
<el-table |
|
||||
:data="dataList" |
|
||||
border |
|
||||
v-loading="dataListLoading" |
|
||||
@selection-change="selectionChangeHandle" |
|
||||
style="width: 100%;" |
|
||||
:header-cell-style="{ |
|
||||
'background-color': '#17b3a3', |
|
||||
'color': '#fff', |
|
||||
'font-weight': '400' |
|
||||
}"> |
|
||||
<el-table-column |
|
||||
type="selection" |
|
||||
header-align="center" |
|
||||
width="40" |
|
||||
align="center"> |
|
||||
</el-table-column> |
|
||||
<el-table-column |
|
||||
v-for="(item,index) in columnList" :key="item.columnProp" |
|
||||
:sortable="item.columnSortable" |
|
||||
:prop="item.columnProp" |
|
||||
:header-align="item.headerAlign" |
|
||||
:show-overflow-tooltip="item.showOverflowTooltip" |
|
||||
:align="item.align" |
|
||||
:fixed="item.fixed" |
|
||||
:width="item.columnWidth" |
|
||||
:label="item.columnLabel"> |
|
||||
<template slot-scope="scope"> |
|
||||
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span> |
|
||||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
||||
style="width: 100px; height: 80px"/></span> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
|
|
||||
|
|
||||
<el-table-column |
|
||||
fixed="right" |
|
||||
header-align="center" |
|
||||
align="center" |
|
||||
width="150" |
|
||||
:label="$t('commoncz')"> |
|
||||
<template slot-scope="scope"> |
|
||||
<a type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{$t('commonedit')}}</a> |
|
||||
<a type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('commondelete')}}</a> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
<el-pagination |
|
||||
@size-change="sizeChangeHandle" |
|
||||
@current-change="currentChangeHandle" |
|
||||
:current-page="pageIndex" |
|
||||
:page-sizes="[10, 20, 50, 100]" |
|
||||
:page-size="pageSize" |
|
||||
:total="totalPage" |
|
||||
layout="total, sizes, prev, pager, next, jumper"> |
|
||||
</el-pagination> |
|
||||
|
|
||||
<el-dialog title="设置table列" :visible.sync="visible" width="1000px"> |
|
||||
<el-form @keyup.enter.native="updateColumnList()" |
|
||||
v-model="userColumnList" |
|
||||
inline="inline" |
|
||||
size="mini" |
|
||||
label-width="80px"> |
|
||||
<el-form-item v-for="(item,index) in userColumnList" |
|
||||
:key="item.columnProp" |
|
||||
:label="item.columnLabel" |
|
||||
:prop="item.columnProp"> |
|
||||
<el-form-item> |
|
||||
排序 |
|
||||
<el-input-number v-model="item.sortLv" controls-position="right" size="mini" :min="0" |
|
||||
:max="10"></el-input-number> |
|
||||
</el-form-item> |
|
||||
<el-form-item> |
|
||||
<el-switch |
|
||||
v-model="item.status" |
|
||||
active-text="显示" |
|
||||
inactive-text="隐藏"> |
|
||||
</el-switch> |
|
||||
</el-form-item> |
|
||||
<el-form-item> |
|
||||
<el-switch |
|
||||
v-model="item.columnSortable" |
|
||||
active-text="排序" |
|
||||
inactive-text="不排序"> |
|
||||
</el-switch> |
|
||||
</el-form-item> |
|
||||
<el-form-item> |
|
||||
<el-switch |
|
||||
v-model="item.fixed" |
|
||||
active-text="固定" |
|
||||
inactive-text="不固定"> |
|
||||
</el-switch> |
|
||||
</el-form-item> |
|
||||
<el-form-item> |
|
||||
宽度 |
|
||||
<el-input-number v-model="item.columnWidth" controls-position="right" size="mini" :min="0" |
|
||||
:max="1000"></el-input-number> |
|
||||
</el-form-item> |
|
||||
|
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
<span slot="footer" class="dialog-footer"> |
|
||||
<el-button @click="visible = false">取消</el-button> |
|
||||
<el-button type="primary" @click="updateColumnList()">确定</el-button> |
|
||||
</span> |
|
||||
</el-dialog> |
|
||||
|
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
|
|
||||
import {getPrdList} from "@/api/prd.js" |
|
||||
import { |
|
||||
saveTableDefaultList, |
|
||||
saveTableUser, |
|
||||
getTableDefaultListLanguage, |
|
||||
getTableUserListLanguage |
|
||||
} from "@/api/table.js" |
|
||||
|
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
functionId: 9001, |
|
||||
tableId: "common1001", |
|
||||
value1: true, |
|
||||
visible: false, |
|
||||
showDefault: false, |
|
||||
queryTable: { |
|
||||
functionId: 9001, |
|
||||
tableId: "common1001", |
|
||||
languageCode: this.$i18n.locale |
|
||||
}, |
|
||||
queryTableUser: { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
tableId: "common1001", |
|
||||
status: true, |
|
||||
languageCode: this.$i18n.locale |
|
||||
}, |
|
||||
dataForm: { |
|
||||
key: '' |
|
||||
}, |
|
||||
userColumnList: [], |
|
||||
columnList: [ |
|
||||
{ |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
serialNumber: 'common1001languageCode', |
|
||||
tableId: "common1001", |
|
||||
tableName: "common", |
|
||||
columnProp: "languageCode", |
|
||||
headerAlign: "center", |
|
||||
align: "center", |
|
||||
columnLabel: "语言编码", |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: true, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: false, |
|
||||
}, { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
serialNumber: 'common1001functionId', |
|
||||
tableId: "common1001", |
|
||||
tableName: "common", |
|
||||
columnProp: "functionId", |
|
||||
headerAlign: "center", |
|
||||
align: "center", |
|
||||
columnLabel: "功能编码", |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: true, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: false |
|
||||
}, { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
serialNumber: 'common1001serialNumber', |
|
||||
tableId: "common1001", |
|
||||
tableName: "common", |
|
||||
columnProp: "serialNumber", |
|
||||
headerAlign: "center", |
|
||||
align: "center", |
|
||||
columnLabel: "序列化编码", |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: true, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: false, |
|
||||
}, |
|
||||
{ |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
serialNumber: 'common1001type', |
|
||||
tableId: "common1001", |
|
||||
tableName: "common", |
|
||||
columnProp: " type", |
|
||||
headerAlign: "center", |
|
||||
align: "center", |
|
||||
columnLabel: "类型", |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: true, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: false, |
|
||||
}, { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 9001, |
|
||||
serialNumber: 'common1001value', |
|
||||
tableId: "common1001", |
|
||||
tableName: "common", |
|
||||
columnProp: " value", |
|
||||
headerAlign: "center", |
|
||||
align: "center", |
|
||||
columnLabel: "语言编码", |
|
||||
columnHidden: false, |
|
||||
columnImage: false, |
|
||||
columnSortable: true, |
|
||||
sortLv: 0, |
|
||||
status: true, |
|
||||
fixed: false, |
|
||||
} |
|
||||
], |
|
||||
dataList: [], |
|
||||
queryPrd: { |
|
||||
page: 1, |
|
||||
limit: 1, |
|
||||
key: '' |
|
||||
}, |
|
||||
pageIndex: 1, |
|
||||
pageSize: 10, |
|
||||
totalPage: 0, |
|
||||
dataListLoading: false, |
|
||||
dataListSelections: [], |
|
||||
addOrUpdateVisible: false |
|
||||
} |
|
||||
}, |
|
||||
activated() { |
|
||||
this.getDataList() |
|
||||
|
|
||||
}, |
|
||||
methods: { |
|
||||
// 打开页面设置 |
|
||||
userSetting() { |
|
||||
this.visible = true; |
|
||||
this.getTableUserAll() |
|
||||
}, |
|
||||
// 获取 用户的配置 |
|
||||
getTableUserAll() { |
|
||||
let queryTable = { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: 1001, |
|
||||
tableId: "prd1001", |
|
||||
languageCode: this.$i18n.locale |
|
||||
} |
|
||||
getTableUserListLanguage(queryTable).then(({data}) => { |
|
||||
if (data.code == 0) { |
|
||||
this.userColumnList = data.rows |
|
||||
if (data.rows.length <= 0) { |
|
||||
getTableDefaultListLanguage(this.queryTable).then(({data}) => { |
|
||||
this.userColumnList = data.rows |
|
||||
|
|
||||
}) |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
}) |
|
||||
}, |
|
||||
// 修改 table 列 |
|
||||
updateColumnList() { |
|
||||
let userColumns = [] |
|
||||
for (let column of this.userColumnList) { |
|
||||
let userColumn = { |
|
||||
userId: this.$store.state.user.name, |
|
||||
functionId: column.functionId, |
|
||||
tableId: column.tableId, |
|
||||
tableName: column.tableName, |
|
||||
columnProp: column.columnProp, |
|
||||
headerAlign: column.headerAlign, |
|
||||
align: column.align, |
|
||||
columnWidth: column.columnWidth, |
|
||||
//columnLabel: column.columnLabel, |
|
||||
columnHidden: column.columnHidden, |
|
||||
columnImage: column.columnImage, |
|
||||
columnSortable: column.columnSortable, |
|
||||
format: column.format, |
|
||||
sortLv: column.sortLv, |
|
||||
status: column.status, |
|
||||
fixed: column.fixed, |
|
||||
serialNumber: column.serialNumber |
|
||||
} |
|
||||
userColumns.push(userColumn) |
|
||||
} |
|
||||
saveTableUser(userColumns).then(({data}) => { |
|
||||
if (data.code == 0) { |
|
||||
this.$message.success(data.msg) |
|
||||
this.visible = false |
|
||||
this.getTableUserColumn() |
|
||||
} else { |
|
||||
this.$message.error(data.msg) |
|
||||
} |
|
||||
}) |
|
||||
}, |
|
||||
// 获取 用户保存的 格式列 |
|
||||
getTableUserColumn() { |
|
||||
getTableUserListLanguage(this.queryTableUser).then(({data}) => { |
|
||||
if (data.rows.length > 0) { |
|
||||
this.columnList = [] |
|
||||
this.columnList = data.rows |
|
||||
} else { |
|
||||
this.getColumnList() |
|
||||
} |
|
||||
}) |
|
||||
}, |
|
||||
// 保存 默认配置 列 |
|
||||
saveColumnList() { |
|
||||
saveTableDefaultList(this.columnList).then(({data}) => { |
|
||||
if (data.code == 0) { |
|
||||
this.$message.success(data.msg) |
|
||||
this.showDefault = false |
|
||||
} else { |
|
||||
this.$message.error(data.msg) |
|
||||
} |
|
||||
}) |
|
||||
this.getColumnList() |
|
||||
}, |
|
||||
// 获取 tableDefault 列 |
|
||||
getColumnList() { |
|
||||
getTableDefaultListLanguage(this.queryTable).then(({data}) => { |
|
||||
if (!data.rows.length == 0) { |
|
||||
this.showDefault = false |
|
||||
this.columnList = data.rows |
|
||||
} else { |
|
||||
this.showDefault = true |
|
||||
} |
|
||||
}) |
|
||||
}, |
|
||||
// 获取数据列表 |
|
||||
getDataList() { |
|
||||
this.dataListLoading = true |
|
||||
getPrdList(this.queryPrd).then(({data}) => { |
|
||||
if (data && data.code === 0) { |
|
||||
this.dataList = data.page.list |
|
||||
this.totalPage = data.page.totalCount |
|
||||
} else { |
|
||||
this.dataList = [] |
|
||||
this.totalPage = 0 |
|
||||
} |
|
||||
this.dataListLoading = false |
|
||||
}) |
|
||||
}, |
|
||||
// 每页数 |
|
||||
sizeChangeHandle(val) { |
|
||||
this.pageSize = val |
|
||||
this.pageIndex = 1 |
|
||||
this.getDataList() |
|
||||
}, |
|
||||
// 当前页 |
|
||||
currentChangeHandle(val) { |
|
||||
this.pageIndex = val |
|
||||
this.getDataList() |
|
||||
}, |
|
||||
// 多选 |
|
||||
selectionChangeHandle(val) { |
|
||||
this.dataListSelections = val |
|
||||
}, |
|
||||
// 删除 |
|
||||
deleteHandle(id) { |
|
||||
var ids = id ? [id] : this.dataListSelections.map(item => { |
|
||||
return item.id |
|
||||
}) |
|
||||
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', { |
|
||||
confirmButtonText: '确定', |
|
||||
cancelButtonText: '取消', |
|
||||
type: 'warning' |
|
||||
}).then(() => { |
|
||||
this.$http({ |
|
||||
url: this.$http.adornUrl('//prd/delete'), |
|
||||
method: 'post', |
|
||||
data: this.$http.adornData(ids, false) |
|
||||
}).then(({data}) => { |
|
||||
if (data && data.code === 0) { |
|
||||
this.$message({ |
|
||||
message: '操作成功', |
|
||||
type: 'success', |
|
||||
duration: 1500, |
|
||||
onClose: () => { |
|
||||
this.getDataList() |
|
||||
} |
|
||||
}) |
|
||||
} else { |
|
||||
this.$message.error(data.msg) |
|
||||
} |
|
||||
}) |
|
||||
}) |
|
||||
}, |
|
||||
}, |
|
||||
created() { |
|
||||
this.getTableUserColumn() |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
<style> |
|
||||
.el-table th { |
|
||||
display: table-cell !important; |
|
||||
} |
|
||||
|
|
||||
|
|
||||
</style> |
|
||||
@ -0,0 +1,93 @@ |
|||||
|
<template> |
||||
|
<el-dialog |
||||
|
width="350px" |
||||
|
title="语言" |
||||
|
:close-on-click-modal="false" |
||||
|
:visible.sync="visible"> |
||||
|
<el-form |
||||
|
v-model="dataList" |
||||
|
inline="inline" |
||||
|
size="mini" |
||||
|
label-width="80px"> |
||||
|
<el-form-item v-for="(item,index) in dataList" |
||||
|
:key="item.columnProp" |
||||
|
:label="item.columnLabel" |
||||
|
:prop="item.columnProp"> |
||||
|
<el-form-item> |
||||
|
{{item.languageCode }} |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-input v-model="item.languageValue" controls-position="right" style="display:inline"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="dataFormSubmit(item)"> {{buttons.add}}</el-button> |
||||
|
</el-form-item> |
||||
|
|
||||
|
|
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
|
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="visible = false" type="primary">关闭</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import {searchMenuLanguageById,saveMenuLanguage} from '@/api/sysLanguageMenu.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
visible: false, |
||||
|
addLanguage: false, |
||||
|
functionId: 9001, |
||||
|
tableId: "common1001", |
||||
|
value1: true, |
||||
|
showDefault: false, |
||||
|
dataListLoading: false, |
||||
|
dataList: [], |
||||
|
querySysLanguageParam: {}, |
||||
|
buttons: { |
||||
|
add: '确认', |
||||
|
}, |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
init(id) { |
||||
|
this.visible = true |
||||
|
let menu = { |
||||
|
menuId: id |
||||
|
} |
||||
|
searchMenuLanguageById(menu).then(({data}) =>{ |
||||
|
this.dataList = data.menuLanguageList |
||||
|
}) |
||||
|
}, |
||||
|
saveLanguageList(){ |
||||
|
|
||||
|
}, |
||||
|
// 获取数据列表 |
||||
|
getDataList() { |
||||
|
this.dataListLoading = false |
||||
|
|
||||
|
}, |
||||
|
// 表单提交 |
||||
|
dataFormSubmit(val) { |
||||
|
saveMenuLanguage(val).then(({data})=>{ |
||||
|
if (data.code == 0){ |
||||
|
this.$message.success(data.msg) |
||||
|
}else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
|
||||
|
.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item { |
||||
|
margin-bottom: 5px; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue