|
|
@ -1,6 +1,16 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="mod-config"> |
|
|
<div class="mod-config"> |
|
|
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|
|
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|
|
|
|
|
<el-form-item label="Site"> |
|
|
|
|
|
<el-select v-model="searchData.site" clearable filterable placeholder="请选择" style="width: 140px" @change="handleSearchSiteChange"> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in userSiteList" |
|
|
|
|
|
:key="item.site" |
|
|
|
|
|
:label="item.sitename || item.site" |
|
|
|
|
|
:value="item.site"> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
<el-form-item :label="'属性模板编码'"> |
|
|
<el-form-item :label="'属性模板编码'"> |
|
|
<el-input v-model="searchData.codeNo" style="width: 120px"></el-input> |
|
|
<el-input v-model="searchData.codeNo" style="width: 120px"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
@ -22,13 +32,9 @@ |
|
|
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in relationshipList" :key="item.functionGroup"></el-option> |
|
|
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in relationshipList" :key="item.functionGroup"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="BU"> |
|
|
|
|
|
<el-select v-model="searchData.buNo" @change="getDataList" clearable> |
|
|
|
|
|
<el-option :value="i.buNo" :label="i.buDesc" v-for="i in BUList" :key="i.buNo"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item :label="'状态'"> |
|
|
<el-form-item :label="'状态'"> |
|
|
<dict-data-select v-model="searchData.active" clearable dict-type="sys_status" |
|
|
<dict-data-select v-model="searchData.active" clearable dict-type="sys_status" |
|
|
|
|
|
:site="searchData.site" |
|
|
:use-default-value="false"></dict-data-select> |
|
|
:use-default-value="false"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item :label="' '"> |
|
|
<el-form-item :label="' '"> |
|
|
@ -109,11 +115,30 @@ |
|
|
<el-form ref="modeForm" label-position="top" :model="modalData" :rules="rules"> |
|
|
<el-form ref="modeForm" label-position="top" :model="modalData" :rules="rules"> |
|
|
<el-row :gutter="10"> |
|
|
<el-row :gutter="10"> |
|
|
<el-col :span="10"> |
|
|
<el-col :span="10"> |
|
|
|
|
|
<el-form-item label="Site" prop="site"> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-if="modalData.flag === '1'" |
|
|
|
|
|
v-model="modalData.site" |
|
|
|
|
|
clearable |
|
|
|
|
|
filterable |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
style="width: 100%;"> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in userSiteList" |
|
|
|
|
|
:key="item.site" |
|
|
|
|
|
:label="item.sitename || item.site" |
|
|
|
|
|
:value="item.site"> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
<el-input v-else :value="modalData.site || ''" disabled/> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="14"> |
|
|
<el-form-item label="属性模板编码:" prop="codeNo"> |
|
|
<el-form-item label="属性模板编码:" prop="codeNo"> |
|
|
<el-input v-model="modalData.codeNo" :disabled="this.modalData.flag !== '1'"></el-input> |
|
|
<el-input v-model="modalData.codeNo" :disabled="this.modalData.flag !== '1'"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="14"> |
|
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
<el-form-item label="属性模板名称:" prop="codeDesc"> |
|
|
<el-form-item label="属性模板名称:" prop="codeDesc"> |
|
|
<el-input v-model="modalData.codeDesc"></el-input> |
|
|
<el-input v-model="modalData.codeDesc"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
@ -150,6 +175,7 @@ |
|
|
<el-col :span="8"> |
|
|
<el-col :span="8"> |
|
|
<el-form-item label="状态:" prop="active"> |
|
|
<el-form-item label="状态:" prop="active"> |
|
|
<dict-data-select v-model="modalData.active" clearable dict-type="sys_status" |
|
|
<dict-data-select v-model="modalData.active" clearable dict-type="sys_status" |
|
|
|
|
|
:site="modalData.site" |
|
|
:use-default-value="false"></dict-data-select> |
|
|
:use-default-value="false"></dict-data-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
@ -392,6 +418,7 @@ import { |
|
|
} from "@/api/base/properties.js" |
|
|
} from "@/api/base/properties.js" |
|
|
import Chooselist from '@/views/modules/common/Chooselist' |
|
|
import Chooselist from '@/views/modules/common/Chooselist' |
|
|
import DictDataSelect from "../../sys/dict-data-select.vue"; |
|
|
import DictDataSelect from "../../sys/dict-data-select.vue"; |
|
|
|
|
|
import { getSiteAndBuByUserName } from '@/api/qc/qc.js' |
|
|
import { |
|
|
import { |
|
|
saveBUPropertiesList, searchAllTypeList, searchAllTypeRelationshipList, |
|
|
saveBUPropertiesList, searchAllTypeList, searchAllTypeRelationshipList, |
|
|
searchBUList, |
|
|
searchBUList, |
|
|
@ -437,6 +464,7 @@ export default { |
|
|
relationshipList:[], |
|
|
relationshipList:[], |
|
|
copyRelationshipList:[], |
|
|
copyRelationshipList:[], |
|
|
typeList:[], |
|
|
typeList:[], |
|
|
|
|
|
userSiteList: [], |
|
|
selectionBU: [], |
|
|
selectionBU: [], |
|
|
BUDialog: false, |
|
|
BUDialog: false, |
|
|
BUList: [], |
|
|
BUList: [], |
|
|
@ -449,9 +477,8 @@ export default { |
|
|
exportList: [], |
|
|
exportList: [], |
|
|
tagNo: '', |
|
|
tagNo: '', |
|
|
searchData: { |
|
|
searchData: { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: '', |
|
|
group: '', |
|
|
group: '', |
|
|
buNo: '', |
|
|
|
|
|
codeNo: '', |
|
|
codeNo: '', |
|
|
codeDesc: '', |
|
|
codeDesc: '', |
|
|
active: 'Y', |
|
|
active: 'Y', |
|
|
@ -468,6 +495,7 @@ export default { |
|
|
modalDisableFlag: false, |
|
|
modalDisableFlag: false, |
|
|
modalData: { |
|
|
modalData: { |
|
|
flag: '', |
|
|
flag: '', |
|
|
|
|
|
site: '', |
|
|
codeNo: '', |
|
|
codeNo: '', |
|
|
codeDesc: '', |
|
|
codeDesc: '', |
|
|
active: '', |
|
|
active: '', |
|
|
@ -479,7 +507,7 @@ export default { |
|
|
updateBy: this.$store.state.user.name, |
|
|
updateBy: this.$store.state.user.name, |
|
|
}, |
|
|
}, |
|
|
detailData: { |
|
|
detailData: { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: '', |
|
|
codeNo: '', |
|
|
codeNo: '', |
|
|
codeDesc: '', |
|
|
codeDesc: '', |
|
|
functionType: '', |
|
|
functionType: '', |
|
|
@ -489,6 +517,24 @@ export default { |
|
|
userId: this.$store.state.user.name |
|
|
userId: this.$store.state.user.name |
|
|
}, |
|
|
}, |
|
|
columnList: [ |
|
|
columnList: [ |
|
|
|
|
|
{ |
|
|
|
|
|
userId: this.$store.state.user.name, |
|
|
|
|
|
functionId: 100002001, |
|
|
|
|
|
serialNumber: '100002001TableSite', |
|
|
|
|
|
tableId: "100002001Table", |
|
|
|
|
|
tableName: "属性模板表", |
|
|
|
|
|
columnProp: 'site', |
|
|
|
|
|
headerAlign: "center", |
|
|
|
|
|
align: "center", |
|
|
|
|
|
columnLabel: 'Site', |
|
|
|
|
|
columnHidden: false, |
|
|
|
|
|
columnImage: false, |
|
|
|
|
|
columnSortable: false, |
|
|
|
|
|
sortLv: 0, |
|
|
|
|
|
status: true, |
|
|
|
|
|
fixed: '', |
|
|
|
|
|
columnWidth: 80, |
|
|
|
|
|
}, |
|
|
{ |
|
|
{ |
|
|
userId: this.$store.state.user.name, |
|
|
userId: this.$store.state.user.name, |
|
|
functionId: 100002001, |
|
|
functionId: 100002001, |
|
|
@ -798,6 +844,13 @@ export default { |
|
|
itemSelections1: [], |
|
|
itemSelections1: [], |
|
|
itemSelections2: [], |
|
|
itemSelections2: [], |
|
|
rules: { |
|
|
rules: { |
|
|
|
|
|
site: [ |
|
|
|
|
|
{ |
|
|
|
|
|
required: true, |
|
|
|
|
|
message: ' ', |
|
|
|
|
|
trigger: 'change' |
|
|
|
|
|
} |
|
|
|
|
|
], |
|
|
codeNo: [ |
|
|
codeNo: [ |
|
|
{ |
|
|
{ |
|
|
required: true, |
|
|
required: true, |
|
|
@ -842,11 +895,46 @@ export default { |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
async created() { |
|
|
async created() { |
|
|
await this.searchBUList(); |
|
|
|
|
|
|
|
|
await this.loadUserSiteList(); |
|
|
await this.searchMenuList(); |
|
|
await this.searchMenuList(); |
|
|
await this.searchAllTypeList(); |
|
|
await this.searchAllTypeList(); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
initDefaultSearchSite () { |
|
|
|
|
|
if (!String(this.searchData.site || '').trim() && this.userSiteList.length > 0) { |
|
|
|
|
|
this.searchData.site = this.userSiteList[0].site |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
loadUserSiteList () { |
|
|
|
|
|
return getSiteAndBuByUserName({ |
|
|
|
|
|
username: this.$store.state.user.name |
|
|
|
|
|
}).then(({ data }) => { |
|
|
|
|
|
if (data && data.code === 0 && Array.isArray(data.rows)) { |
|
|
|
|
|
const siteMap = new Map() |
|
|
|
|
|
data.rows.forEach(item => { |
|
|
|
|
|
const site = String(item.site || '').trim() |
|
|
|
|
|
if (!site || siteMap.has(site)) { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
const sitename = String(item.sitename || site).trim() |
|
|
|
|
|
siteMap.set(site, sitename || site) |
|
|
|
|
|
}) |
|
|
|
|
|
this.userSiteList = Array.from(siteMap.entries()).map(([site, sitename]) => ({ |
|
|
|
|
|
site, |
|
|
|
|
|
sitename |
|
|
|
|
|
})) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.userSiteList = [] |
|
|
|
|
|
} |
|
|
|
|
|
this.initDefaultSearchSite() |
|
|
|
|
|
}).catch(() => { |
|
|
|
|
|
this.userSiteList = [] |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
handleSearchSiteChange () { |
|
|
|
|
|
this.pageIndex = 1 |
|
|
|
|
|
this.getDataList() |
|
|
|
|
|
}, |
|
|
changeMenu(val){ |
|
|
changeMenu(val){ |
|
|
if (this.modalFlag){ |
|
|
if (this.modalFlag){ |
|
|
this.modalData.functionGroup=''; |
|
|
this.modalData.functionGroup=''; |
|
|
@ -887,7 +975,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
searchMenuList() { |
|
|
searchMenuList() { |
|
|
let params = { |
|
|
let params = { |
|
|
site: this.$store.state.user.site |
|
|
|
|
|
|
|
|
site: this.searchData.site |
|
|
} |
|
|
} |
|
|
searchMenuAllListId(params).then(({data}) => { |
|
|
searchMenuAllListId(params).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
@ -903,11 +991,11 @@ export default { |
|
|
this.$message.error(error) |
|
|
this.$message.error(error) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
searchBUList() { |
|
|
|
|
|
|
|
|
searchBUList(site) { |
|
|
let params = { |
|
|
let params = { |
|
|
site: this.$store.state.user.site |
|
|
|
|
|
|
|
|
site: site || this.searchData.site |
|
|
} |
|
|
} |
|
|
searchBUList(params).then(({data}) => { |
|
|
|
|
|
|
|
|
return searchBUList(params).then(({data}) => { |
|
|
if (data && data.code === 0) { |
|
|
if (data && data.code === 0) { |
|
|
this.BUList = data.rows; |
|
|
this.BUList = data.rows; |
|
|
} else { |
|
|
} else { |
|
|
@ -985,7 +1073,7 @@ export default { |
|
|
|
|
|
|
|
|
addModal() { |
|
|
addModal() { |
|
|
this.modalData = { |
|
|
this.modalData = { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: this.searchData.site || '', |
|
|
flag: '1', |
|
|
flag: '1', |
|
|
codeNo: '', |
|
|
codeNo: '', |
|
|
codeDesc: '', |
|
|
codeDesc: '', |
|
|
@ -1050,6 +1138,12 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
saveData() { |
|
|
saveData() { |
|
|
|
|
|
if (!String(this.modalData.site || '').trim()) { |
|
|
|
|
|
this.$alert('请选择Site!', '错误', { |
|
|
|
|
|
confirmButtonText: '确定' |
|
|
|
|
|
}) |
|
|
|
|
|
return false |
|
|
|
|
|
} |
|
|
if (this.modalData.codeNo == '' || this.modalData.codeNo == null) { |
|
|
if (this.modalData.codeNo == '' || this.modalData.codeNo == null) { |
|
|
this.$alert('请输入属性模板编码!', '错误', { |
|
|
this.$alert('请输入属性模板编码!', '错误', { |
|
|
confirmButtonText: '确定' |
|
|
confirmButtonText: '确定' |
|
|
@ -1205,7 +1299,7 @@ export default { |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
let inData = { |
|
|
let inData = { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: this.detailData.site, |
|
|
codeNo: this.detailData.codeNo, |
|
|
codeNo: this.detailData.codeNo, |
|
|
codeDesc: this.detailData.codeDesc, |
|
|
codeDesc: this.detailData.codeDesc, |
|
|
functionType: this.detailData.functionType, |
|
|
functionType: this.detailData.functionType, |
|
|
@ -1235,7 +1329,7 @@ export default { |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
let inData = { |
|
|
let inData = { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: this.detailData.site, |
|
|
codeNo: this.detailData.codeNo, |
|
|
codeNo: this.detailData.codeNo, |
|
|
codeDesc: this.detailData.codeDesc, |
|
|
codeDesc: this.detailData.codeDesc, |
|
|
functionType: this.detailData.functionType, |
|
|
functionType: this.detailData.functionType, |
|
|
@ -1285,21 +1379,24 @@ export default { |
|
|
}, |
|
|
}, |
|
|
BUBtnDialog(row) { |
|
|
BUBtnDialog(row) { |
|
|
this.modalData = row |
|
|
this.modalData = row |
|
|
searchBUPropertiesList(row).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.selectionBU = data.row.map(item => item.buNo); |
|
|
|
|
|
this.BUDialog = true |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning(data.msg) |
|
|
|
|
|
} |
|
|
|
|
|
}).catch((error) => { |
|
|
|
|
|
this.$message.error(error) |
|
|
|
|
|
|
|
|
Promise.resolve(this.searchBUList(row.site)).then(() => { |
|
|
|
|
|
searchBUPropertiesList(row).then(({data}) => { |
|
|
|
|
|
if (data && data.code === 0) { |
|
|
|
|
|
this.selectionBU = data.row.map(item => item.buNo); |
|
|
|
|
|
this.BUDialog = true |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning(data.msg) |
|
|
|
|
|
} |
|
|
|
|
|
}).catch((error) => { |
|
|
|
|
|
this.$message.error(error) |
|
|
|
|
|
}) |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
savePropertiesBU() { |
|
|
savePropertiesBU() { |
|
|
|
|
|
const currentSite = this.modalData.site || this.searchData.site |
|
|
let arr = this.selectionBU.map(item => { |
|
|
let arr = this.selectionBU.map(item => { |
|
|
return { |
|
|
return { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: currentSite, |
|
|
buNo: item, |
|
|
buNo: item, |
|
|
functionType: this.modalData.functionType, |
|
|
functionType: this.modalData.functionType, |
|
|
codeNo: this.modalData.codeNo |
|
|
codeNo: this.modalData.codeNo |
|
|
@ -1307,7 +1404,7 @@ export default { |
|
|
}); |
|
|
}); |
|
|
if (arr.length === 0){ |
|
|
if (arr.length === 0){ |
|
|
arr[0] = { |
|
|
arr[0] = { |
|
|
site: this.$store.state.user.site, |
|
|
|
|
|
|
|
|
site: currentSite, |
|
|
functionType: this.modalData.functionType, |
|
|
functionType: this.modalData.functionType, |
|
|
codeNo: this.modalData.codeNo |
|
|
codeNo: this.modalData.codeNo |
|
|
} |
|
|
} |
|
|
|