Browse Source

属性 属性模板

master
常熟吴彦祖 1 month ago
parent
commit
56a935840e
  1. 6
      src/api/base/properties.js
  2. 278
      src/views/modules/base/propertiesItem/propertiesModel.vue

6
src/api/base/properties.js

@ -1,6 +1,5 @@
import { createAPI } from "@/utils/httpRequest.js"; import { createAPI } from "@/utils/httpRequest.js";
export const searchMenuAllListId= (data) => createAPI(`/properties/menu/list`,'post',data)
export const propertiesItemSearch = data => createAPI(`/properties/propertiesItemSearch`,'post',data) export const propertiesItemSearch = data => createAPI(`/properties/propertiesItemSearch`,'post',data)
export const propertiesItemSave = data => createAPI(`/properties/propertiesItemSave`,'post',data) export const propertiesItemSave = data => createAPI(`/properties/propertiesItemSave`,'post',data)
export const propertiesItemEdit = data => createAPI(`/properties/propertiesItemEdit`,'post',data) export const propertiesItemEdit = data => createAPI(`/properties/propertiesItemEdit`,'post',data)
@ -21,10 +20,5 @@ export const deleteItemAvailable = data => createAPI(`/properties/deleteItemAvai
export const goUpItem= data => createAPI(`/properties/goUpItem`,'post',data) export const goUpItem= data => createAPI(`/properties/goUpItem`,'post',data)
export const goDownItem= data => createAPI(`/properties/goDownItem`,'post',data) export const goDownItem= data => createAPI(`/properties/goDownItem`,'post',data)
export const searchBUList= (data) => createAPI(`/properties/bu/list`,'post',data)
export const searchPropertiesGroup= (data) => createAPI(`/properties/group/list`,'post',data)
export const searchBUPropertiesList= (data) => createAPI(`/bu/properties/list`,'post',data)
export const saveBUPropertiesList= (data) => createAPI(`/bu/properties/save`,'post',data)
export const searchAllItemTypeList= (data) => createAPI(`/properties/item/type/list`,'post',data) export const searchAllItemTypeList= (data) => createAPI(`/properties/item/type/list`,'post',data)
export const searchAllTypeList= (data) => createAPI(`/properties/type/list`,'get',data) export const searchAllTypeList= (data) => createAPI(`/properties/type/list`,'get',data)
export const searchAllTypeRelationshipList = (data) => createAPI(`/properties/type/relationship/list`,'post',data)

278
src/views/modules/base/propertiesItem/propertiesModel.vue

@ -7,11 +7,6 @@
<el-form-item :label="'属性模板名称'"> <el-form-item :label="'属性模板名称'">
<el-input v-model="searchData.codeDesc" style="width: 120px"></el-input> <el-input v-model="searchData.codeDesc" style="width: 120px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="应用菜单">
<el-select v-model="searchData.group" @change="getDataList()">
<el-option :value="i.menuId" :label="i.name" v-for="i in menuList" :key="i.menuId"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'模板分组'"> <el-form-item :label="'模板分组'">
<el-select filterable v-model="searchData.functionType" @change="val=>changeMenu(val)" clearable style="width: 120px"> <el-select filterable v-model="searchData.functionType" @change="val=>changeMenu(val)" clearable style="width: 120px">
<!-- <el-option label="A" value="A"></el-option>--> <!-- <el-option label="A" value="A"></el-option>-->
@ -24,18 +19,6 @@
<el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option> <el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="模板类型">
<!-- <dict-data-select ref="dictDataSelect" @change="getDataList" v-model="searchData.functionGroup" clearable :dict-type="searchData.group"-->
<!-- :use-default-value="false"></dict-data-select>-->
<el-select filterable style="width: 100%;" clearable v-model="searchData.functionGroup">
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in relationshipList" :key="item.functionGroup"></el-option>
</el-select>
</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="'状态'">
<!-- <el-select filterable v-model="searchData.active" style="width: 130px">--> <!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
<!-- <el-option label="全部" value=""></el-option>--> <!-- <el-option label="全部" value=""></el-option>-->
@ -119,7 +102,7 @@
fixed="right" fixed="right"
header-align="center" header-align="center"
align="center" align="center"
width="160"
width="130"
label="操作"> label="操作">
<template slot-scope="{row,$index}"> <template slot-scope="{row,$index}">
<el-link style="cursor:pointer;" type="primary" v-if="row.isSystem !== 'Y'" @click="updateModal(row)">修改 <el-link style="cursor:pointer;" type="primary" v-if="row.isSystem !== 'Y'" @click="updateModal(row)">修改
@ -130,7 +113,6 @@
@click="deletePropertiesModel(row)">删除 @click="deletePropertiesModel(row)">删除
</el-link> </el-link>
<span style="cursor:no-drop;color: #aaa" v-else>删除</span> <span style="cursor:no-drop;color: #aaa" v-else>删除</span>
<el-link style="cursor:pointer;" type="primary" @click="BUBtnDialog(row)">BU授权</el-link>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -147,55 +129,24 @@
@close="()=>{this.$refs.modeForm.resetFields();}" v-drag :visible.sync="modalFlag" width="500px"> @close="()=>{this.$refs.modeForm.resetFields();}" v-drag :visible.sync="modalFlag" width="500px">
<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="12">
<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="12">
<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>
</el-col> </el-col>
<el-col :span="10">
<el-col :span="12">
<el-form-item :label="'模板分组'" prop="functionType"> <el-form-item :label="'模板分组'" prop="functionType">
<el-select filterable style="width: 100%;" @change="val=>changeMenu(val)" clearable v-model="modalData.functionType" :disabled="this.modalData.flag !== '1'">
<!-- <el-option label="A" value="A"></el-option>-->
<!-- <el-option label="IP" value="IP"></el-option>-->
<!-- <el-option label="MP" value="MP"></el-option>-->
<!-- <el-option label="BM" value="BM"></el-option>-->
<!-- <el-option label="ECN" value="ECN"></el-option>-->
<!-- <el-option label="TEST" value="TEST"></el-option>-->
<!-- <el-option label="询价" value="PRICECHECK"></el-option>-->
<el-select filterable style="width: 100%;" clearable v-model="modalData.functionType" :disabled="this.modalData.flag !== '1'">
<el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option> <el-option :label="item.functionTypeDesc" :value="item.functionType" v-for="item in typeList" :key="item.functionType"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="14">
<el-form-item :label="'模板类型'" prop="functionGroup">
<!-- <dict-data-select :disabled="this.modalData.flag !== '1'" ref="dialogDictDataSelect" v-model="modalData.functionGroup" clearable :dict-type="modalData.group"-->
<!-- :use-default-value="false"></dict-data-select>-->
<el-select filterable style="width: 100%;" v-model="modalData.functionGroup" :disabled="this.modalData.flag !== '1'">
<el-option :label="item.functionGroupDesc" :value="item.functionGroup" v-for="item in copyRelationshipList" :key="item.functionGroup"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="应用菜单" required>
<el-select :disabled="this.modalData.flag !== '1'"
v-model="modalData.group"
style="width: 100%;"
placeholder="请选择">
<el-option
v-for="item in menuList"
:key="item.menuId"
:label="item.name"
:value="item.menuId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<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"
:use-default-value="false"></dict-data-select> :use-default-value="false"></dict-data-select>
@ -421,25 +372,6 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
<el-dialog title="BU授权" v-drag :visible.sync="BUDialog" width="518px">
<el-form :inline="true" label-position="top" :model="modalData">
<el-form-item :label="'模板编码'">
<el-input v-model="modalData.codeNo" readonly style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'模板名称'">
<el-input v-model="modalData.codeDesc" readonly style="width: 120px"></el-input>
</el-form-item>
</el-form>
<el-transfer class="rq" :props="{key: 'buNo',label: 'buDesc' }"
filterable v-model="selectionBU"
:data="BUList">
</el-transfer>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="savePropertiesBU">保存</el-button>
<el-button type="primary" @click="BUDialog = false">关闭</el-button>
</el-footer>
</el-dialog>
</div> </div>
</template> </template>
@ -457,10 +389,7 @@ import {
deleteModalDetail, // deleteModalDetail, //
goUpItem, goUpItem,
goDownItem, goDownItem,
saveBUPropertiesList, searchAllTypeList, searchAllTypeRelationshipList,
searchBUList,
searchBUPropertiesList,
searchMenuAllListId,
searchAllTypeList,
} 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 {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js' import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
@ -502,13 +431,7 @@ export default {
}, },
data() { data() {
return { return {
relationshipList:[],
copyRelationshipList:[],
typeList:[], typeList:[],
selectionBU: [],
BUDialog: false,
BUList: [],
menuList: [],
// //
favorite: false, favorite: false,
// start // start
@ -521,13 +444,10 @@ export default {
tagNo: '', tagNo: '',
searchData: { searchData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
group: '',
buNo: '',
codeNo: '', codeNo: '',
codeDesc: '', codeDesc: '',
active: 'Y', active: 'Y',
functionType: '', functionType: '',
functionGroup:'',
page: 1, page: 1,
limit: 10, limit: 10,
}, },
@ -544,8 +464,6 @@ export default {
codeDesc: '', codeDesc: '',
active: '', active: '',
functionType: '', functionType: '',
functionGroup: '',
group: '',
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
createdBy: this.$store.state.user.name, createdBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name, updateBy: this.$store.state.user.name,
@ -578,23 +496,6 @@ export default {
status: true, status: true,
fixed: '', fixed: '',
},{ },{
userId: this.$store.state.user.name,
functionId: 100002001,
serialNumber: '100002001TableFunctionType',
tableId: "100002001Table",
tableName: "属性项目表",
columnProp: 'functionGroupDesc',
headerAlign: "center",
align: "center",
columnLabel: '模板类型',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
},
{
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 100002001, functionId: 100002001,
serialNumber: '100002001TableCodeNo', serialNumber: '100002001TableCodeNo',
@ -900,13 +801,6 @@ export default {
trigger: 'change' trigger: 'change'
} }
], ],
functionGroup: [
{
required: true,
message: ' ',
trigger: 'change'
}
],
} }
} }
}, },
@ -916,41 +810,10 @@ export default {
}) })
}, },
async created() { async created() {
await this.searchBUList();
await this.searchMenuList();
await this.searchAllTypeList(); await this.searchAllTypeList();
this.getDataList();
}, },
methods: { methods: {
changeMenu(val){
if (this.modalFlag){
this.modalData.functionGroup='';
}else {
this.searchData.functionGroup = '';
}
this.getDataList();
this.searchAllTypeRelationshipList(val)
// this.$nextTick(()=>{
// this.$refs[ref].initOption();
// })
},
searchAllTypeRelationshipList(args){
let params={
functionType: args
}
searchAllTypeRelationshipList(params).then(({data})=>{
if (data && data.code === 0){
if (this.modalFlag){
this.copyRelationshipList = data.rows;
}else {
this.relationshipList = data.rows;
}
}else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
searchAllTypeList(){ searchAllTypeList(){
searchAllTypeList().then(({data})=>{ searchAllTypeList().then(({data})=>{
if (data && data.code === 0) { if (data && data.code === 0) {
@ -962,45 +825,6 @@ export default {
this.$message.error(error) this.$message.error(error)
}) })
}, },
searchMenuList() {
let params = {
site: this.$store.state.user.site
}
searchMenuAllListId(params).then(({data}) => {
if (data && data.code === 0) {
this.menuList = data.rows;
if (this.menuList.length > 0) {
this.searchData.group = this.menuList[0].menuId
// this.searchData.menuList.push(this.menuList[0].menuId)
}
this.getDataList();
// this.$nextTick(()=>{
// this.$refs.dictDataSelect.initOption();
// })
} else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
searchBUList() {
let params = {
site: this.$store.state.user.site
}
searchBUList(params).then(({data}) => {
if (data && data.code === 0) {
this.BUList = data.rows;
// if (this.BUList.length > 0) {
// this.searchData.buNo = this.BUList[0].buNo
// }
} else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
// S // S
getBaseList(val, type) { getBaseList(val, type) {
this.tagNo = val this.tagNo = val
@ -1081,19 +905,13 @@ export default {
codeNo: '', codeNo: '',
codeDesc: '', codeDesc: '',
active: 'Y', active: 'Y',
functionType: `${this.searchData.functionType?this.searchData.functionType:'555'}`,
functionGroup: `${this.searchData.functionGroup?this.searchData.functionGroup:'666'}`,
group: `${this.searchData.group?this.searchData.group:''}`,
functionType: this.searchData.functionType || '',
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
createdBy: this.$store.state.user.name, createdBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name, updateBy: this.$store.state.user.name,
}; };
this.modalDisableFlag = false; this.modalDisableFlag = false;
this.copyRelationshipList = this.relationshipList
this.modalFlag = true; this.modalFlag = true;
this.$nextTick(()=>{
this.$refs['dialogDictDataSelect'].initOption();
})
}, },
updateModal(row) { updateModal(row) {
@ -1103,9 +921,7 @@ export default {
codeNo: row.codeNo, codeNo: row.codeNo,
codeDesc: row.codeDesc, codeDesc: row.codeDesc,
active: row.active, active: row.active,
group: row.group,
functionType: row.functionType, functionType: row.functionType,
functionGroup: row.functionGroup,
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
updateBy: this.$store.state.user.name, updateBy: this.$store.state.user.name,
}; };
@ -1158,12 +974,6 @@ export default {
return false return false
} }
if (this.modalData.functionType === '') { if (this.modalData.functionType === '') {
this.$alert('选择模板类型!', '错误', {
confirmButtonText: '确定'
})
return false
}
if (this.modalData.functionGroup === '') {
this.$alert('选择模板分组!', '错误', { this.$alert('选择模板分组!', '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
}) })
@ -1381,78 +1191,8 @@ export default {
}) })
}, },
BUBtnDialog(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)
})
},
savePropertiesBU() {
// if (this.selectionBU.length === 0) {
// this.$message.warning("BU")
// return
// }
let arr = this.selectionBU.map(item => {
return {
site: this.$store.state.user.site,
buNo: item,
functionType: this.modalData.functionType,
codeNo: this.modalData.codeNo
}
});
if (arr.length === 0){
arr[0] = {
site: this.$store.state.user.site,
functionType: this.modalData.functionType,
codeNo: this.modalData.codeNo
}
}
saveBUPropertiesList(arr).then(({data}) => {
if (data && data.code === 0) {
this.$message.success(data.msg)
this.getDataList()
this.BUDialog = false
} else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
} }
} }
</script> </script>
<style scoped> <style scoped>
.rq /deep/ .el-transfer-panel {
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header {
height: 35px;
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox {
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
color: #fff
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span {
color: #3c3c3e;
}
.rq /deep/ .el-transfer-panel .el-checkbox__inner::after {
height: 8px;
width: 4px;
}
</style> </style>
Loading…
Cancel
Save