Browse Source

工厂信息维护,用户保存 语言,工厂

master
[li_she] 5 years ago
parent
commit
3f30be5cc6
  1. 1
      package.json
  2. 4
      src/api/factory.js
  3. 2
      src/main.js
  4. 265
      src/views/modules/factory/tblbasedata-add-or-update.vue
  5. 650
      src/views/modules/factory/tblbasedata.vue
  6. 14
      src/views/modules/sys/language/common.vue
  7. 173
      src/views/modules/sys/user-add-or-update.vue

1
package.json

@ -33,7 +33,6 @@
"vue-cookie": "1.1.4",
"vue-json-excel": "^0.3.0",
"vue-router": "3.0.1",
"decimal": "10.3.1",
"vuex": "3.0.1",
"xlsx": "^0.17.0"
},

4
src/api/factory.js

@ -0,0 +1,4 @@
import { createAPI } from "@/utils/httpRequest.js";
// 获取工厂列表
export const getFactory = data => createAPI(`/factory/tblbasedata/list`,'get',data)

2
src/main.js

@ -29,7 +29,7 @@ if (process.env.NODE_ENV !== 'production') {
// 挂载全局
Vue.prototype.$http = httpRequest // ajax请求方法
Vue.prototype.isAuth = isAuth // 权限方法
Vue.prototype.decimalUtil = decimalUtil // 权限方法
Vue.prototype.decimalUtil = decimalUtil // 计算
// 保存整站vuex本地储存初始状态

265
src/views/modules/factory/tblbasedata-add-or-update.vue

@ -0,0 +1,265 @@
<template>
<el-dialog
v-drag
width="40%"
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<el-form :inline="true" label-position="top" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
label-width="80px">
<el-form-item :label="columnList[0].columnLabel" prop="site">
<el-input v-model="dataForm.site" style="width: 160px"></el-input>
</el-form-item>
<el-form-item :label="columnList[1].columnLabel" prop="type">
<el-input v-model="dataForm.type" style="width: 160px"></el-input>
</el-form-item>
<el-form-item :label="columnList[2].columnLabel" prop="secondType">
<el-input v-model="dataForm.secondType" style="width: 160px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" ref="dataForm"
label-width="80px">
<el-form-item :label="columnList[3].columnLabel" prop="baseData">
<el-input v-model="dataForm.baseData" style="width: 160px"></el-input>
</el-form-item>
<el-form-item :label="columnList[4].columnLabel" prop="baseDesc">
<el-input v-model="dataForm.baseDesc" style="width: 160px"></el-input>
</el-form-item>
<el-form-item :label="columnList[5].columnLabel" prop="status">
<el-input v-model="dataForm.status" style="width: 160px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" ref="dataForm"
label-width="80px">
<el-form-item :label="columnList[6].columnLabel" prop="sortNo">
<el-input v-model="dataForm.sortNo" style="width: 160px"></el-input>
</el-form-item>
<el-form-item :label="columnList[7].columnLabel" prop="remark">
<el-input v-model="dataForm.remark" style="width: 160px"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
visible: false,
columnList: [
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSite',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "site",
headerAlign: "center",
align: "center",
columnLabel: "site",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataType',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "type",
headerAlign: "type",
align: "center",
columnLabel: "type",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSecondType',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "secondType",
headerAlign: "center",
align: "center",
columnLabel: "secondType",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataBaseData',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "baseData",
headerAlign: "center",
align: "center",
columnLabel: "工厂编号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataBaseDesc',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "baseDesc",
headerAlign: "center",
align: "center",
columnLabel: "工厂描述",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataStatus',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "status",
headerAlign: "status",
align: "center",
columnLabel: "status",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSortNo',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "sortNo",
headerAlign: "center",
align: "center",
columnLabel: "sortNo",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataRemark',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "remark",
headerAlign: "center",
align: "center",
columnLabel: "工厂备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
],
dataForm: {
id: 0,
site: '',
type: '',
secondType: '',
baseData: '',
baseDesc: '',
status: '',
sortNo: '',
remark: '',
}
}
},
methods: {
init(id, baseColumns) {
this.dataForm.id = id || 0
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.$http({
url: this.$http.adornUrl(`/factory/tblbasedata/info/` + this.dataForm.id),
method: 'get',
params: this.$http.adornParams()
}).then(({data}) => {
if (data && data.code === 0) {
this.dataForm.site = data.data.site
this.dataForm.type = data.data.type
this.dataForm.secondType = data.data.secondType
this.dataForm.baseData = data.data.baseData
this.dataForm.baseDesc = data.data.baseDesc
this.dataForm.status = data.data.status
this.dataForm.sortNo = data.data.sortNo
this.dataForm.remark = data.data.remark
}
})
}
})
},
//
dataFormSubmit() {
this.$http({
url: this.$http.adornUrl(`/factory/tblbasedata/${!this.dataForm.id ? 'save' : 'update'}`),
method: 'post',
data: this.$http.adornData({
'id': this.dataForm.id || undefined,
'site': this.dataForm.site,
'type': this.dataForm.type,
'secondType': this.dataForm.secondType,
'baseData': this.dataForm.baseData,
'baseDesc': this.dataForm.baseDesc,
'status': this.dataForm.status,
'sortNo': this.dataForm.sortNo,
'remark': this.dataForm.remark
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
} else {
this.$message.error(data.msg)
}
})
}
}
}
</script>

650
src/views/modules/factory/tblbasedata.vue

@ -0,0 +1,650 @@
<template>
<div class="mod-config">
<div>
<span @click="favoriteFunction()">
<icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg" ></icon-svg>
</span>
</div>
<el-form :inline="true" :model="queryData" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input filterable v-model="queryData.key" clearable>
</el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()" type="primary">{{buttons.search}}</el-button>
<el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{buttons.defaultTable}}
</el-button>
<el-button @click="userSetting" type="primary">{{ buttons.settingTable}}</el-button>
<el-button @click="addOrUpdateHandle(0)" type="primary">{{ buttons.add}}</el-button>
</el-form-item>
</el-form>
<el-table
:height="height"
:data="dataList"
border
v-loading="dataListLoading"
@selection-change="selectionChangeHandle"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
: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="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">修改</a>
<a type="text" size="small" @click="deleteHandle(scope.row.id)">删除</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>
<column v-if="visible" ref="column" @refreshData="getTableUserColumn"></column>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</template>
<script>
import column from "../common/column";
import {
searchSysLanguageParam,
searchFunctionButtonList,
saveButtonList,
} from "@/api/sysLanguage.js"
import {
saveTableDefaultList,
getTableDefaultListLanguage,
getTableUserListLanguage
} from "@/api/table.js"
import {userFavoriteList,saveUserFavorite,removeUserFavorite} from '@/api/userFavorite.js'
import AddOrUpdate from './tblbasedata-add-or-update'
export default {
data () {
return {
queryData:{
key: ''
},
// table
height:450,
//
favorite: false,
addLanguage: false,
functionId: 9002,
tableId: "9002Blbasedata",
languageCode: this.$i18n.locale,
visible: false,
showDefault: false,
//
sysLanguageParams: [],
// table
userColumnList: [],
columnList: [
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataId',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "id",
headerAlign: "center",
align: "center",
columnLabel: "工厂id",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSite',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "site",
headerAlign: "center",
align: "center",
columnLabel: "site",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataType',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "sortNo",
headerAlign: "type",
align: "center",
columnLabel: "type",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSecondType',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "secondType",
headerAlign: "center",
align: "center",
columnLabel: "secondType",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataBaseData',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "baseData",
headerAlign: "center",
align: "center",
columnLabel: "工厂编号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataBaseDesc',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "baseDesc",
headerAlign: "center",
align: "center",
columnLabel: "工厂描述",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataStatus',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "status",
headerAlign: "status",
align: "center",
columnLabel: "status",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataSortNo',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "sortNo",
headerAlign: "center",
align: "center",
columnLabel: "sortNo",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 9002,
serialNumber: '9002tBlbasedataRemark',
tableId: "9002Blbasedata",
tableName: "工厂信息",
columnProp: "remark",
headerAlign: "center",
align: "center",
columnLabel: "工厂备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
],
//
dataList: [],
buttons: {
add: '添加',
edit: '编辑',
delete: '删除',
deleteList: '批量删除',
cz: '操作',
search: '查询',
download: '导出',
settingTable: '设置列表',
defaultTable: '设置默认配置'
},
// start
exportData: [],
exportName: "页面功能语言",
exportHeader: ["页面功能语言"],
exportFooter: [],
exportDefaultValue: "这一行这一列没有数据",
// end
buttonList: [
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'add',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'edit',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'delete',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'deleteList',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'cz',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'search',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'download',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'settingTable',
// objectType: "button",
// tableId: "common1001"
// },
// {
// functionId: "9001",
// languageValue: '',
// objectId: 'defaultTable',
// objectType: "button",
// tableId: "common1001"
// }
],
//
pageIndex: 1,
pageSize: 20,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate,
column
},
mounted() {
this.$nextTick(()=>{
this.height = window.innerHeight - 240;
})
},
activated () {
this.getDataList()
},
methods: {
//
addOrUpdateBase(){
},
//
printReport(){
alert( this.$store.state.user.site)
//
// const LODOP = getLodop()
// if (LODOP) {
// var strBodyStyle = '<style>'
// strBodyStyle += 'table { border-top: 1 solid #000000; border-left: 1 solid #000000; border-collapse:collapse; border-spacing:0;}'
// strBodyStyle += 'caption { line-height:2em; }'
// strBodyStyle += 'td { border-right: 1 solid #000000; border-bottom: 1 solid #000000; text-align:center; padding:2px 3px; font-size:11px;}'
// strBodyStyle += '</style>' //
// var strFormHtml = strBodyStyle + '<body>' + document.getElementById('commmon').innerHTML + '</body>' //
//
// LODOP.PRINT_INIT('') //
// LODOP.PRINT_DESIGN();
// //LODOP.PREVIEW();
// //LODOP.PRINT();
//
// LODOP.SET_PRINT_PAGESIZE(2, 0, 0, 'A4') //
// LODOP.ADD_PRINT_HTM('1%', '1%', '98%', '98%', strFormHtml) //
// LODOP.SET_PREVIEW_WINDOW(2, 0, 0, 800, 600, '') //
// LODOP.PREVIEW()
// }
},
//
favoriteIsOk(){
let userFavorite ={
userId:this.$store.state.user.id,
languageCode:this.$i18n.locale
}
userFavoriteList(userFavorite).then(({data}) =>{
let size = data.list.filter(item => item.menuId == this.$route.meta.menuId).length;
if (size>0){
this.favorite = true
}else {
this.favorite = false
}
})
},
// OR
favoriteFunction(){
let userFavorite ={
userId: this.$store.state.user.id,
functionId: this.$route.meta.menuId,
}
if (this.favorite){
//
this.$confirm(`确定取消收藏`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
removeUserFavorite(userFavorite).then(({data})=>{
this.$message.success(data.msg)
this.favorite = false
})
})
}else {
//
saveUserFavorite(userFavorite).then(({data})=>{
this.$message.success(data.msg)
this.favorite = true
})
}
},
// button
getFunctionButtonList() {
let queryButton = {
functionId: this.functionId,
tableId: this.tableId,
languageCode: this.languageCode,
objectType: 'button'
}
searchFunctionButtonList(queryButton).then(({data}) => {
if (data.data.length>0) {
this.buttons = data.data
}
})
},
//
getSysLanguageParamList() {
let querySysLanguageParam = {
languageCode: this.$i18n.locale
}
searchSysLanguageParam(querySysLanguageParam).then(({data}) => {
this.sysLanguageParams = data.rows
})
},
//
userSetting() {
this.visible = true;
let queryTable = {
userId: this.userId,
functionId: this.functionId,
tableId: this.tableId,
languageCode: this.languageCode
}
this.$nextTick(() => {
this.$refs.column.init(queryTable);
});
},
//
getTableUserColumn() {
let queryTableUser = {
userId: this.userId,
functionId: this.functionId,
tableId: this.tableId,
languageCode: this.languageCode,
status: true,
}
getTableUserListLanguage(queryTableUser).then(({data}) => {
if (data.rows.length > 0) {
//this.columnList = []
this.columnList = data.rows
} else {
this.getColumnList()
}
})
},
//
saveColumnList() {
saveButtonList(this.buttonList).then(({data}) => {
})
saveTableDefaultList(this.columnList).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.showDefault = false
} else {
this.$message.error(data.msg)
}
})
saveTableDefaultList(this.columnList1).then(({data}) => {
if (data.code == 0) {
this.$message.success(data.msg)
this.showDefault = false
} else {
this.$message.error(data.msg)
}
})
this.getFunctionButtonList();
this.getColumnList()
},
// tableDefault
getColumnList() {
let queryTable = {
functionId: this.functionId,
tableId: this.tableId,
languageCode: this.languageCode
}
getTableDefaultListLanguage(queryTable).then(({data}) => {
if (!data.rows.length == 0) {
this.showDefault = false
this.columnList = data.rows
} else {
this.showDefault = true
}
})
},
//
getDataList () {
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/factory/tblbasedata/list'),
method: 'get',
params: this.$http.adornParams({
'page': this.pageIndex,
'limit': this.pageSize,
'key': this.queryData.key
})
}).then(({data}) => {
if (data && data.code === 0) {
this.dataList = data.list
this.totalPage = data.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
},
// /
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
//
deleteHandle (id) {
var ids = id ? [id] : this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定删除选择中的数据`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/factory/tblbasedata/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)
}
})
})
},
//
fields(){
let json = "{"
this.columnList.forEach((item,index) =>{
if (index == this.columnList.length-1 ){
json +="\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""
}else {
json += "\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""+ ","
}
})
json +="}"
let s = eval("(" + json + ")")
return s
},
createExportData() {
// ,,
// TODO:
if(this.dataListSelections.length>0){
return this.dataListSelections;
}
return this.dataList;
},
startDownload() {
// this.exportData = this.dataList
},
finishDownload() {
}
},
created() {
this.getTableUserColumn()
this.getSysLanguageParamList()
this.getFunctionButtonList()
this.favoriteIsOk()
}
}
</script>
<style scoped>
.sl-svg{
overflow: hidden;
float: right;
}
</style>

14
src/views/modules/sys/language/common.vue

@ -6,9 +6,7 @@
</span>
</div>
<el-form :inline="true" :model="querySysLanguagePack" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input filterable v-model="querySysLanguagePack.functionId" clearable>
</el-input>
</el-form-item>
@ -446,6 +444,7 @@ import column from "../../common/column";
queryLanguage: {},
//
querySysLanguagePack: {
functionId: '',
page: 1,
limit: 1,
languageValue: '',
@ -473,7 +472,9 @@ import column from "../../common/column";
methods: {
//
printReport(){
this.decimalUtil.sub(100,50)
alert( this.$store.state.user.site)
alert( this.decimalUtil.sub(100,50))
//
// const LODOP = getLodop()
// if (LODOP) {
@ -579,11 +580,11 @@ import column from "../../common/column";
// button
getFunctionButtonList() {
searchFunctionButtonList(this.queryButton).then(({data}) => {
if (data.data && data.data.toString().length>0) {
if (JSON.stringify(data.data) != '{}' ) {
this.buttons = data.data
} else {
saveButtonList(this.buttonList).then(({data}) => {
})
// saveButtonList(this.buttonList).then(({data}) => {
// })
}
})
},
@ -637,6 +638,9 @@ import column from "../../common/column";
this.$message.error(data.msg)
}
})
saveButtonList(this.buttonList).then(({data}) => {
})
this.getFunctionButtonList()
this.getFunctionButtonList();
this.getColumnList()
},

173
src/views/modules/sys/user-add-or-update.vue

@ -1,48 +1,66 @@
<template>
<div class="user-add-or-update">
<div class="user-add-or-update">
<el-dialog
width="25%"
width="40%"
:title="!dataForm.id ? '新增' : '修改'"
:close-on-click-modal="false"
:visible.sync="visible">
<!-- 取消 :rules="dataRule"-->
<el-form :model="dataForm" label-position="top" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
label-width="80px">
<el-form-item label="用户名" prop="userName">
<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="dataForm.email" placeholder="邮箱"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
</el-form-item>
<el-form-item label="工厂" size="mini" prop="site">
<el-checkbox-group v-model="dataForm.site">
<el-checkbox v-for="item in factorys" :key="item.id" :label="role.roleId">{{ role.roleName }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="角色" size="mini" prop="roleIdList">
<el-checkbox-group v-model="dataForm.roleIdList">
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{
role.roleName
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="状态" size="mini" prop="status">
<el-radio-group v-model="dataForm.status">
<el-radio :label="0">禁用</el-radio>
<el-radio :label="1">正常</el-radio>
</el-radio-group>
</el-form-item>
<el-form :inline="true" :model="dataForm" label-position="top" ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="80px">
<el-form>
<el-form-item label="用户名" prop="userName">
<el-input v-model="dataForm.userName" style="width: 150px;" placeholder="登录帐号"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.password" style="width: 150px;" type="password" placeholder="密码"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.comfirmPassword" style="width: 150px;" type="password"
placeholder="确认密码"></el-input>
</el-form-item>
</el-form>
<el-form>
<el-form-item label="邮箱" prop="email">
<el-input v-model="dataForm.email" style="width: 150px;" placeholder="邮箱"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" style="width: 150px;" placeholder="手机号"></el-input>
</el-form-item>
<el-form-item label="工厂" size="mini" prop="site">
<el-select v-model="dataForm.site">
<el-option v-for="(item,index) in factorys" :key="index" :label="item.baseDesc"
:value="item.baseData"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form>
<el-form-item label="语言" prop="languageDefault">
<el-select filterable v-model="dataForm.languageDefault" clearable>
<el-option :label="item.languageName" :value="item.languageCode" v-for="(item,index) in languageList "
:key="index"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form>
<el-form-item label="角色" size="mini" prop="roleIdList">
<el-checkbox-group v-model="dataForm.roleIdList">
<el-checkbox v-for="role in roleList" :key="role.roleId" :label="role.roleId">{{
role.roleName
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<el-form>
<el-form-item label="状态" size="mini" prop="status">
<el-radio-group v-model="dataForm.status">
<el-radio :label="0">禁用</el-radio>
<el-radio :label="1">正常</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">取消</el-button>
@ -54,88 +72,49 @@
</template>
<script>
import {isEmail, isMobile} from '@/utils/validate'
import {getFactory} from "@/api/factory";
import { getFactory } from "@/api/factory";
import { searchSysLanguage } from "@/api/sysLanguage.js"
export default {
data() {
var validatePassword = (rule, value, callback) => {
if (!this.dataForm.id && !/\S/.test(value)) {
callback(new Error('密码不能为空'))
} else {
callback()
}
}
var validateComfirmPassword = (rule, value, callback) => {
if (!this.dataForm.id && !/\S/.test(value)) {
callback(new Error('确认密码不能为空'))
} else if (this.dataForm.password !== value) {
callback(new Error('确认密码与密码输入不一致'))
} else {
callback()
}
}
var validateEmail = (rule, value, callback) => {
if (!isEmail(value)) {
callback(new Error('邮箱格式错误'))
} else {
callback()
}
}
var validateMobile = (rule, value, callback) => {
if (!isMobile(value)) {
callback(new Error('手机号格式错误'))
} else {
callback()
}
}
return {
visible: false,
roleList: [],
factorys: [],
languageList: [],
dataForm: {
id: 0,
userName: '',
password: '',
comfirmPassword: '',
languageDefault: '',
salt: '',
email: '',
mobile: '',
roleIdList: [],
status: 1,
site: 0
},
dataRule: {
userName: [
{required: true, message: '用户名不能为空', trigger: 'blur'}
],
password: [
{validator: validatePassword, trigger: 'blur'}
],
comfirmPassword: [
{validator: validateComfirmPassword, trigger: 'blur'}
],
email: [
{required: true, message: '邮箱不能为空', trigger: 'blur'},
{validator: validateEmail, trigger: 'blur'}
],
mobile: [
{required: true, message: '手机号不能为空', trigger: 'blur'},
{validator: validateMobile, trigger: 'blur'}
]
}
}
},
methods: {
//
getLanguageList() {
let queryLanguage = {}
searchSysLanguage(queryLanguage).then(({data}) => {
this.languageList = data.rows
})
},
//
factoryList() {
getFactory().then((data) => {
getFactory().then(({data}) => {
this.factorys = data.list
})
},
init(id) {
this.dataForm.id = id || 0
this.factoryList()
this.$http({
url: this.$http.adornUrl('/sys/role/select'),
method: 'get',
@ -161,6 +140,8 @@ export default {
this.dataForm.mobile = data.user.mobile
this.dataForm.roleIdList = data.user.roleIdList
this.dataForm.status = data.user.status
this.dataForm.languageDefault = data.user.languageDefault
this.dataForm.site = data.user.site
}
})
}
@ -181,7 +162,9 @@ export default {
'email': this.dataForm.email,
'mobile': this.dataForm.mobile,
'status': this.dataForm.status,
'roleIdList': this.dataForm.roleIdList
'roleIdList': this.dataForm.roleIdList,
'languageDefault': this.dataForm.languageDefault,
'site': this.dataForm.site,
})
}).then(({data}) => {
if (data && data.code === 0) {
@ -201,6 +184,10 @@ export default {
}
})
}
},
created() {
this.factoryList()
this.getLanguageList()
}
}
</script>

Loading…
Cancel
Save