10 changed files with 1513 additions and 1055 deletions
-
6src/api/base/site.js
-
5src/api/chooselist/chooselist.js
-
65src/utils/ajax.js
-
159src/utils/excel-util.js
-
484src/views/modules/base/buInformation.vue
-
1304src/views/modules/base/factoryInformation.vue
-
525src/views/modules/base/workCenter.vue
-
2src/views/modules/common/Chooselist_eam.vue
-
10src/views/modules/shopOrder/productionReport/productionLineOperatorRegistration.vue
-
8src/views/modules/sys/user.vue
@ -1,8 +1,11 @@ |
|||||
import { createAPI } from "@/utils/httpRequest.js"; |
import { createAPI } from "@/utils/httpRequest.js"; |
||||
|
|
||||
|
|
||||
export const getChooselist = data => createAPI(`/chooselist/getChooselist/${data.tagNo}`,'get',data) |
export const getChooselist = data => createAPI(`/chooselist/getChooselist/${data.tagNo}`,'get',data) |
||||
|
|
||||
export const getChooselistData = data => createAPI(`/chooselist/getChooselistData`,'post',data) |
export const getChooselistData = data => createAPI(`/chooselist/getChooselistData`,'post',data) |
||||
|
|
||||
export const getChooselistEam = data => createAPI(`/chooselist/getChooselist/${data.tagNo}`,'get',data) |
export const getChooselistEam = data => createAPI(`/chooselist/getChooselist/${data.tagNo}`,'get',data) |
||||
|
|
||||
export const getChooselistDataEam = data => createAPI(`/chooselist/getChooselistData`,'post',data) |
export const getChooselistDataEam = data => createAPI(`/chooselist/getChooselistData`,'post',data) |
||||
|
|
||||
|
export const verifyData = data => createAPI(`/chooselist/verifyData`,'post',data) |
||||
@ -0,0 +1,65 @@ |
|||||
|
import Vue from "vue"; |
||||
|
import axios from 'axios'; |
||||
|
const qs = require('qs'); |
||||
|
var apiServer = (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl); |
||||
|
var http = axios.create({ |
||||
|
timeout: 10000, |
||||
|
headers: {}, |
||||
|
transformRequest: data => { |
||||
|
if (typeof data === 'object') { |
||||
|
return qs.stringify(data, { arrayFormat: 'brackets' }); |
||||
|
} |
||||
|
return data; |
||||
|
} |
||||
|
}); |
||||
|
export default { |
||||
|
axios: http, |
||||
|
$post(url, data, callback, error) { |
||||
|
// 添加 headers 配置项
|
||||
|
const config = { |
||||
|
headers: { |
||||
|
'Content-Type': 'application/json;charset=UTF-8', |
||||
|
'token': Vue.cookie.get('token') |
||||
|
} |
||||
|
}; |
||||
|
let p = http.post(apiServer +url, JSON.stringify(data), config); |
||||
|
if (callback) { |
||||
|
p.then(res => { |
||||
|
callback(res); |
||||
|
}) |
||||
|
} |
||||
|
if (error) { |
||||
|
p.catch(err => { |
||||
|
error(err); |
||||
|
}); |
||||
|
} |
||||
|
return p; |
||||
|
}, |
||||
|
file:(url, data, succ, err )=>{ |
||||
|
let requestUrl = apiServer + url; |
||||
|
var xhr = new XMLHttpRequest(); |
||||
|
xhr.open('POST', requestUrl, true); |
||||
|
xhr.responseType = "blob"; |
||||
|
xhr.withCredentials = true; |
||||
|
xhr.setRequestHeader("X-API", "true"); |
||||
|
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); |
||||
|
xhr.setRequestHeader("token", Vue.cookie.get('token') ); |
||||
|
xhr.onreadystatechange = function (e) { |
||||
|
if (xhr.readyState === 4) { |
||||
|
if (xhr.status === 200) { |
||||
|
succ(xhr.response) |
||||
|
} else { |
||||
|
var fr = new FileReader(); |
||||
|
fr.onload = function(e) { |
||||
|
var text = fr.result; |
||||
|
console.log(text); |
||||
|
err ? err(text) : alert("请求发生错误:" + text) |
||||
|
}; |
||||
|
fr.readAsText(xhr.response); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
xhr.send(data); |
||||
|
}, |
||||
|
apiServer: apiServer |
||||
|
}; |
||||
@ -0,0 +1,159 @@ |
|||||
|
import XLSX from "xlsx"; |
||||
|
import ajax from '@/utils/ajax' |
||||
|
import { |
||||
|
Message |
||||
|
} from 'element-ui'; |
||||
|
const excelHeaderName = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; |
||||
|
/** |
||||
|
* excel导出默认选项 |
||||
|
*/ |
||||
|
const exportOptionDefault = { |
||||
|
url: "",//*必填,导出请求地址
|
||||
|
tableRef: undefined,//#1组合必填 导出数据对应列信息,el-table引用
|
||||
|
columnMapping: undefined,//#1组合必填 自定义导出列映射
|
||||
|
fileName: "export.xlsx",//导出文件名
|
||||
|
params: {},//导出请求参数
|
||||
|
rowFetcher: res => {//从请求结果中获取导出行的方式,默认取请求结果中的data作为导出数据
|
||||
|
return (res || {data: []}).data; |
||||
|
}, |
||||
|
columnFormatter: [],//需要格式化的列
|
||||
|
mergeSetting: { |
||||
|
refs: [], //检测需要合并的数据列属性名
|
||||
|
columns: [] //检测需要合并后,要合并的列,以第一条数据为准合并
|
||||
|
}, |
||||
|
dropColumns: [],//导出时需要过滤掉的列
|
||||
|
}; |
||||
|
let HEADERS = []; |
||||
|
for (let i =0;i< 200;i++) { |
||||
|
let c = parseInt(i / 26); |
||||
|
let m = i % 26; |
||||
|
HEADERS.push((c > 0 ? excelHeaderName[c - 1] : "") + excelHeaderName[m]); |
||||
|
} |
||||
|
let validOption = opt => { |
||||
|
let option = Object.assign({}, opt); |
||||
|
if (!option.url) { |
||||
|
throw new Error("request url is required."); |
||||
|
} |
||||
|
if (!option.tableRef && !option.columnMapping) { |
||||
|
throw new Error("element table ref object or columnMapping is required."); |
||||
|
} |
||||
|
if (option.rowFetcher != undefined && typeof option.rowFetcher != "function") { |
||||
|
throw new Error("rowFetcher must be a function with one param."); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
let getMergeSetting = (data, s, allCols) => { |
||||
|
let refCols = s.refs; |
||||
|
let mcols = s.columns; |
||||
|
let mergeList = []; |
||||
|
|
||||
|
let refRow = data[0]; |
||||
|
let mergeSetting = { |
||||
|
s: 0, |
||||
|
e: 0 |
||||
|
}; |
||||
|
for (let i = 0; i < data.length; i++) { |
||||
|
let same = refCols.map(c => data[i][c] === refRow[c]).filter(r => !!r).length == refCols.length; |
||||
|
if (!same) { |
||||
|
mergeSetting.e > mergeSetting.s && (mergeList.push(mergeSetting)); |
||||
|
refRow = data[i]; |
||||
|
mergeSetting = { |
||||
|
s: i, |
||||
|
e: i |
||||
|
}; |
||||
|
} else { |
||||
|
i > mergeSetting.e && (mergeSetting.e = i); |
||||
|
i == data.length - 1 && (mergeList.push(mergeSetting)); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
let setting = []; |
||||
|
mergeList.forEach(e => { |
||||
|
mcols.forEach(c => { |
||||
|
let ci = allCols.indexOf(c); |
||||
|
setting.push({ |
||||
|
s: { |
||||
|
r: e.s + 1, |
||||
|
c: ci |
||||
|
}, |
||||
|
e: { |
||||
|
r: e.e + 1, |
||||
|
c: ci |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
}); |
||||
|
return setting; |
||||
|
} |
||||
|
|
||||
|
let setStyle = (ws, s) => {} |
||||
|
|
||||
|
let getColSetting = (mapping,dropColums) => { |
||||
|
let columns = []; |
||||
|
for (let i = 0; i < mapping.length; i++) { |
||||
|
let c = mapping[i]; |
||||
|
if (dropColums.indexOf(c.columnProp) == -1) { |
||||
|
columns.push({ |
||||
|
property: c.columnProp || c.property, |
||||
|
label: c.columnLabel, |
||||
|
type: "default" |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
return { |
||||
|
columns: columns |
||||
|
}; |
||||
|
} |
||||
|
let export2Excel = opt => { |
||||
|
validOption(opt); |
||||
|
let options = Object.assign({}, exportOptionDefault, opt); |
||||
|
let expColSetting = !!options.tableRef ? options.tableRef : getColSetting(options.columnMapping, options.dropColumns); |
||||
|
ajax.$post(options.url, options.params, resp => { |
||||
|
if (resp.status !== 200) { |
||||
|
Message.error({ |
||||
|
message: resp.description |
||||
|
}); |
||||
|
} |
||||
|
let rows = !!resp.data.rows?options.rowFetcher(resp).rows:resp.data.page.list; |
||||
|
var columns = [ |
||||
|
[] |
||||
|
]; |
||||
|
var keys = []; |
||||
|
let formaters = new Array(); |
||||
|
expColSetting.columns.forEach(column => { |
||||
|
if (!!column.label && column.type === "default") { |
||||
|
columns[0].push(column.label); |
||||
|
keys.push(column.property); |
||||
|
let formater = options.columnFormatter.find(f => !!f[column.property] && typeof f[column.property] == 'function'); |
||||
|
!!formater && (formaters[column.property] = formater[column.property]); |
||||
|
} |
||||
|
}); |
||||
|
rows.forEach(o => { |
||||
|
let list = []; |
||||
|
keys.forEach(k => { |
||||
|
let formater = formaters[k]; |
||||
|
if (!!formater) { |
||||
|
list.push(formater(o[k])); |
||||
|
} else { |
||||
|
list.push(o[k]); |
||||
|
} |
||||
|
}); |
||||
|
columns.push(list); |
||||
|
}); |
||||
|
const ws = XLSX.utils.aoa_to_sheet(columns); |
||||
|
if (!!options.mergeSetting && !!options.mergeSetting.refs && options.mergeSetting.refs.length > 0) { |
||||
|
let merges = getMergeSetting(rows, options.mergeSetting, keys); |
||||
|
ws["!merges"] = merges; |
||||
|
setStyle(ws, merges); |
||||
|
} |
||||
|
// console.log(ws);
|
||||
|
const wb = XLSX.utils.book_new(); |
||||
|
XLSX.utils.book_append_sheet(wb, ws, options.fileName.replace(/\.xlsx/, "")); |
||||
|
XLSX.writeFile(wb, options.fileName); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
export default { |
||||
|
exportTable: export2Excel |
||||
|
} |
||||
@ -0,0 +1,484 @@ |
|||||
|
<template> |
||||
|
<div class="mod-config"> |
||||
|
<el-form :inline="true" label-position="top" label-width="100px"> |
||||
|
<el-form-item :label="'工厂编码'"> |
||||
|
<el-input v-model="searchData.site" clearable style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="'BU编码'"> |
||||
|
<el-input v-model="searchData.buNo" clearable style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="'BU名称'"> |
||||
|
<el-input v-model="searchData.buDesc" clearable style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="' '"> |
||||
|
<el-button v-if="!authSearch" @click="getDataList()" type="primary" style="margin-left: 2px">查询</el-button> |
||||
|
<el-button v-if="!authSave" @click="addModal()" type="primary" style="margin-left: 5px">新增</el-button> |
||||
|
<el-button @click="exportExcel()" type="primary" style="margin-left: 2px">{{'导出'}}</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
|
||||
|
<el-table |
||||
|
:height="height" |
||||
|
:data="dataList" |
||||
|
border |
||||
|
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==''?false:item.fixed" |
||||
|
:min-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="80" |
||||
|
label="操作"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-link style="cursor: pointer" v-if="!authUpdate" @click="updateModal(scope.row)">编辑</el-link> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
<el-pagination |
||||
|
style="margin-top: 0px" |
||||
|
@size-change="sizeChangeHandle" |
||||
|
@current-change="currentChangeHandle" |
||||
|
:current-page="pageIndex" |
||||
|
:page-sizes="[20, 50, 100, 200, 500]" |
||||
|
:page-size="pageSize" |
||||
|
:total="totalPage" |
||||
|
layout="total, sizes, prev, pager, next, jumper"> |
||||
|
</el-pagination> |
||||
|
|
||||
|
<el-dialog title="BU信息" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="530px"> |
||||
|
<el-form :inline="true" label-position="top" :rules="rules" style="margin-left: 7px;margin-top: -5px;"> |
||||
|
<el-form-item prop="site"> |
||||
|
<span v-if="modalData.flag === '1'" slot="label" @click="getBaseList(93)"><a herf="#">工厂编码</a></span> |
||||
|
<span v-else slot="label">工厂编码</span> |
||||
|
<el-input v-model="modalData.site" @change="siteChange(93)" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="工厂名称"> |
||||
|
<el-input v-model="modalData.siteName" disabled style="width: 200px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="是否在用" prop="active"> |
||||
|
<el-select v-model="modalData.active" style="width: 100px"> |
||||
|
<el-option label="是" value="Y"></el-option> |
||||
|
<el-option label="否" value="N"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-form :inline="true" label-position="top" :rules="rules" :model="modalData" style="margin-left: 7px"> |
||||
|
<el-form-item label="BU编码" prop="buNo"> |
||||
|
<el-input v-model="modalData.buNo" style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="BU名称" prop="buDesc"> |
||||
|
<el-input v-model="modalData.buDesc" style="width: 200px"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-footer style="height:35px;margin-top: 15px;text-align:center"> |
||||
|
<el-button type="primary" @click="saveData()">保存</el-button> |
||||
|
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
||||
|
</el-footer> |
||||
|
</el-dialog> |
||||
|
|
||||
|
<!-- 动态列 --> |
||||
|
<column v-if="visible" ref="column" @refreshData="getTableUserColumn" v-drag></column> |
||||
|
|
||||
|
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import column from "@/views/modules/common/column" |
||||
|
import { |
||||
|
queryBuInformation, |
||||
|
buSave, |
||||
|
buEdit, |
||||
|
} from "@/api/base/site.js" |
||||
|
import { |
||||
|
getTableDefaultListLanguage, |
||||
|
getTableUserListLanguage, |
||||
|
} from "@/api/table.js" |
||||
|
import Chooselist from '@/views/modules/common/Chooselist_eam' |
||||
|
import {verifyData} from "@/api/chooselist/chooselist.js" |
||||
|
import excel from "@/utils/excel-util.js" |
||||
|
let functionId = '100001004' |
||||
|
|
||||
|
export default { |
||||
|
name: "buInformation", |
||||
|
components: { |
||||
|
column, |
||||
|
Chooselist |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
menuId: this.$route.meta.menuId, |
||||
|
tagNo: '', |
||||
|
exportName: "BU信息" + this.dayjs().format('YYYYMMDDHHmmss'), |
||||
|
visible: false, |
||||
|
height: 200, |
||||
|
pageIndex: 1, |
||||
|
pageSize: 20, |
||||
|
totalPage: 0, |
||||
|
queryTable: { |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
tableId: "100001004Table", |
||||
|
languageCode: this.$i18n.locale |
||||
|
}, |
||||
|
queryTableUser: { |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: this.$route.meta.menuId, |
||||
|
tableId: "100001004Table", |
||||
|
status: true, |
||||
|
languageCode: this.$i18n.locale |
||||
|
}, |
||||
|
searchData: { |
||||
|
site: '', |
||||
|
buNo: '', |
||||
|
buDesc: '', |
||||
|
page: 1, |
||||
|
limit: 10, |
||||
|
}, |
||||
|
modalData: { |
||||
|
flag: '', |
||||
|
site: '', |
||||
|
siteName: '', |
||||
|
buNo: '', |
||||
|
buDesc: '', |
||||
|
active: '', |
||||
|
}, |
||||
|
dataList: [], |
||||
|
columnList: [ |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 100001004, |
||||
|
serialNumber: '100001004TableSite', |
||||
|
tableId: "100001004Table", |
||||
|
tableName: "BU信息表", |
||||
|
columnProp: "site", |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: "工厂编码", |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 100 |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 100001004, |
||||
|
serialNumber: '100001004TableSiteName', |
||||
|
tableId: "100001004Table", |
||||
|
tableName: "BU信息表", |
||||
|
columnProp: "siteName", |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: "工厂名称", |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 200 |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 100001004, |
||||
|
serialNumber: '100001004TableBuNo', |
||||
|
tableId: "100001004Table", |
||||
|
tableName: "BU信息表", |
||||
|
columnProp: "buNo", |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: "BU编码", |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 100 |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 100001004, |
||||
|
serialNumber: '100001004TableBuDesc', |
||||
|
tableId: "100001004Table", |
||||
|
tableName: "BU信息表", |
||||
|
columnProp: "buDesc", |
||||
|
headerAlign: "center", |
||||
|
align: "left", |
||||
|
columnLabel: "BU名称", |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 200 |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 100001004, |
||||
|
serialNumber: '100001004TableActive', |
||||
|
tableId: "100001004Table", |
||||
|
tableName: "BU信息表", |
||||
|
columnProp: "active", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "是否在用", |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 80 |
||||
|
}, |
||||
|
], |
||||
|
rules:{ |
||||
|
site:[ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: ' ', |
||||
|
trigger: ['blur','change'] |
||||
|
} |
||||
|
], |
||||
|
buNo:[ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: ' ', |
||||
|
trigger: ['blur','change'] |
||||
|
} |
||||
|
], |
||||
|
buDesc:[ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: ' ', |
||||
|
trigger: ['blur','change'] |
||||
|
} |
||||
|
], |
||||
|
active:[ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: ' ', |
||||
|
trigger: ['blur','change'] |
||||
|
} |
||||
|
] |
||||
|
}, |
||||
|
authSearch: false, |
||||
|
authUpdate: false, |
||||
|
authSave: false, |
||||
|
modalFlag: false, |
||||
|
modalDisableFlag: true, |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 150 |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
created () { |
||||
|
this.getDataList() |
||||
|
// 获取按钮的权限 |
||||
|
this.getButtonAuthData() |
||||
|
this.getTableUserColumn() |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
|
||||
|
// 每页数 |
||||
|
sizeChangeHandle (val) { |
||||
|
this.pageSize = val |
||||
|
this.pageIndex = 1 |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
|
||||
|
// 当前页 |
||||
|
currentChangeHandle (val) { |
||||
|
this.pageIndex = val |
||||
|
this.getDataList() |
||||
|
}, |
||||
|
|
||||
|
// 查询 |
||||
|
getDataList () { |
||||
|
this.searchData.limit = this.pageSize |
||||
|
this.searchData.page = this.pageIndex |
||||
|
queryBuInformation(this.searchData).then(({data}) => { |
||||
|
if (data.code === 0) { |
||||
|
this.dataList = data.page.list |
||||
|
this.pageIndex = data.page.currPage |
||||
|
this.pageSize = data.page.pageSize |
||||
|
this.totalPage = data.page.totalCount |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 新增 |
||||
|
addModal () { |
||||
|
this.modalData = { |
||||
|
flag: '1', |
||||
|
site: '', |
||||
|
siteName: '', |
||||
|
buNo: '', |
||||
|
buDesc: '', |
||||
|
active: 'Y', |
||||
|
} |
||||
|
this.modalDisableFlag = false |
||||
|
this.modalFlag = true |
||||
|
}, |
||||
|
|
||||
|
// 编辑 |
||||
|
updateModal (row) { |
||||
|
this.modalData = { |
||||
|
flag: '2', |
||||
|
...row |
||||
|
} |
||||
|
this.modalDisableFlag = true |
||||
|
this.modalFlag = true |
||||
|
}, |
||||
|
|
||||
|
// 保存 |
||||
|
saveData () { |
||||
|
if (this.modalData.site == null || this.modalData.site === '') { |
||||
|
this.$message.warning('请选择工厂!') |
||||
|
return |
||||
|
} |
||||
|
if (this.modalData.buNo == null || this.modalData.buNo === '') { |
||||
|
this.$message.warning('请输入BU编码!') |
||||
|
return |
||||
|
} |
||||
|
if (this.modalData.buDesc == null || this.modalData.buDesc === '') { |
||||
|
this.$message.warning('请输入BU名称!') |
||||
|
return |
||||
|
} |
||||
|
if (this.modalData.flag === '1') { |
||||
|
buSave(this.modalData).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.siteFlag = false |
||||
|
this.getDataList() |
||||
|
this.$message.success('操作成功') |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
buEdit(this.modalData).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
this.getDataList() |
||||
|
this.modalFlag = false |
||||
|
this.$message.success('操作成功') |
||||
|
} else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
// site校验 |
||||
|
siteChange (tagNo) { |
||||
|
let tempData = { |
||||
|
tagno: tagNo, |
||||
|
conditionSql: " and SiteID = '" + this.modalData.site + "'" |
||||
|
} |
||||
|
verifyData(tempData).then(({data}) => { |
||||
|
if (data && data.code === 0) { |
||||
|
if (data.baseListData.length > 0) { |
||||
|
this.modalData.site = data.baseListData[0].SiteID |
||||
|
this.modalData.siteName = data.baseListData[0].SiteName |
||||
|
} else { |
||||
|
this.modalData.siteName = '' |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
getBaseData (val) { |
||||
|
this.$nextTick(() => { |
||||
|
if (this.tagNo === 93) { |
||||
|
this.modalData.site = val.SiteID |
||||
|
this.modalData.siteName = val.SiteName |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 获取基础数据列表 |
||||
|
getBaseList (val) { |
||||
|
this.tagNo = val |
||||
|
this.$nextTick(() => { |
||||
|
let strVal = "" |
||||
|
if (val === 93){ |
||||
|
strVal = this.modalData.site |
||||
|
} |
||||
|
this.$refs.baseList.init(val,strVal) |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 获取按钮的权限数据 |
||||
|
getButtonAuthData () { |
||||
|
let searchFlag = this.isAuth(this.menuId + ":search") |
||||
|
let saveFlag = this.isAuth(this.menuId + ":save") |
||||
|
let updateFlag = this.isAuth(this.menuId + ":update") |
||||
|
//处理页面的权限数据 |
||||
|
this.authSearch = !searchFlag |
||||
|
this.authSave = !saveFlag |
||||
|
this.authUpdate = !updateFlag |
||||
|
}, |
||||
|
|
||||
|
// 获取 用户保存的 格式列 |
||||
|
getTableUserColumn () { |
||||
|
getTableUserListLanguage(this.queryTableUser).then(({data}) => { |
||||
|
if (data.rows.length > 0) { |
||||
|
this.columnList = data.rows |
||||
|
} else { |
||||
|
this.getColumnList() |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 获取 tableDefault 列 |
||||
|
getColumnList() { |
||||
|
getTableDefaultListLanguage(this.queryTable).then(({data}) => { |
||||
|
if (data.rows.length > 0) { |
||||
|
this.columnList = data.rows |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
async exportExcel() { |
||||
|
this.searchData.limit = -1 |
||||
|
this.searchData.page = 1 |
||||
|
excel.exportTable({ |
||||
|
url: "/base/queryBuInformation", |
||||
|
columnMapping: this.columnList,//可以直接用table,不需要的列就剔除 |
||||
|
mergeSetting: [],//需要合并的列 |
||||
|
params: this.searchData, |
||||
|
fileName: this.exportName+".xlsx", |
||||
|
rowFetcher: res => res.data, |
||||
|
columnFormatter: [], |
||||
|
dropColumns: [],//需要剔除的列,例如dropColumns: ["netWeight"],即剔除净重列 |
||||
|
}) |
||||
|
}, |
||||
|
}, |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
|
||||
|
</style> |
||||
1304
src/views/modules/base/factoryInformation.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue