Browse Source

Merge branch 'develop' of http://101.201.121.115:3000/leo/LAPP_AdvancedPlanner_Front into wangxy

pull/154/head
wangxy 3 years ago
parent
commit
e24760a3d4
7 changed files with 356 additions and 288 deletions
  1. +1
    -0
      src/server/request.js
  2. +300
    -275
      src/store/productionPlanning/customerForecastDemandReview.js
  3. +11
    -1
      src/views/plan/workbench/homePage/customer/index.vue
  4. +1
    -1
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/evaluation/char.vue
  5. +34
    -10
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/evaluation/index.vue
  6. +8
    -0
      src/views/productionPlanning/customerForecastDemandReview/resourceContent/index.vue
  7. +1
    -1
      src/views/system/user/addOrEdit.vue

+ 1
- 0
src/server/request.js View File

@ -3,6 +3,7 @@ import { ElMessage } from "element-plus";
let switchValue = true;
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_URL || "http://101.201.121.115:9003/",
// baseURL: process.env.VUE_APP_BASE_URL || "http://192.168.0.36:9003/",
timeout: 1000 * 60 * 2, // request timeout
});
service.interceptors.request.use(


+ 300
- 275
src/store/productionPlanning/customerForecastDemandReview.js View File

@ -2,282 +2,307 @@ import { getStanderOne } from "@/server/api.js";
import { getMpsModeList } from "@/server/productionPlanning/customerForecastDemandReview";
const customerForecastDemandReview = {
namespaced: true,
state: {
// 客户ID
customerId: "",
// 物料ID
artId:"",
// 资源ID
resourceId:"",
// 资源类型 1 主要资源 2 次要资源
resourceType:"",
// 变更资源计划参数
changeMpsPlanParam:{},
// 物料需求数据加载
articleDemandLoading:false,
// 物料需求数据
articleDemandData:{},
// 物料需求数据
articleDemandTableData:{},
// 选择的物料需求数据
selectArticleDemandRow:{},
// 选择的物料需求数据行
selectArticleDemandRowIndex:-1,
// 资源负荷新数据加载
evaluationSecondResourceLoading:false,
// 资源负荷旧数据加载
evaluationMainResourceLoading:false,
// 次要资源数据
evaluationSecondResourceData:[],
// 次要资源列表数据
evaluationSecondResourceListData:[],
// 资源负荷旧数据
evaluationMainResourceData:[],
// 是否取消资源选择
isSelectResource:false,
// 模式选择下拉列表选项
mpsPlanModeOptions:[],
// 模式规则选项
mpsRuleOptions:[],
// 最小覆盖期类型选项
minCoverPeriodTypeOptions:[],
// 最大覆盖期类型选项
maxCoverPeriodTypeOptions:[],
// 需求图形X轴
xAxis:[],
// 需求图形Y轴
yAxis:[],
// 设置需求表格高度
articleDemandHeight:"0",
// 资源评估表格高度
calculateTableHeight:"calc(100% - 10px)",
// 设置需求表格高度
articleCharHeight:"100%",
namespaced: true,
state: {
// 客户ID
customerId: "",
// 物料ID
artId: "",
// 资源ID
resourceId: "",
// 资源类型 1 主要资源 2 次要资源
resourceType: "",
// 变更资源计划参数
changeMpsPlanParam: {},
// 物料需求数据加载
articleDemandLoading: false,
// 物料需求数据
articleDemandData: {},
// 物料需求数据
articleDemandTableData: {},
// 选择的物料需求数据
selectArticleDemandRow: {},
// 选择的物料需求数据行
selectArticleDemandRowIndex: -1,
// 资源负荷新数据加载
evaluationSecondResourceLoading: false,
// 资源负荷旧数据加载
evaluationMainResourceLoading: false,
// 次要资源数据
evaluationSecondResourceData: [],
// 次要资源列表数据
evaluationSecondResourceListData: [],
// 资源负荷旧数据
evaluationMainResourceData: [],
// 是否取消资源选择
isSelectResource: false,
// 模式选择下拉列表选项
mpsPlanModeOptions: [],
// 模式规则选项
mpsRuleOptions: [],
// 最小覆盖期类型选项
minCoverPeriodTypeOptions: [],
// 最大覆盖期类型选项
maxCoverPeriodTypeOptions: [],
// 需求图形X轴
xAxis: [],
// 需求图形Y轴
yAxis: [],
// 设置需求表格高度
articleDemandHeight: "0",
// 资源评估表格高度
calculateTableHeight: "calc(100% - 10px)",
// 设置需求表格高度
articleCharHeight: "100%",
// 是否显示表单
showChar:false,
// 编辑按钮样式
editButtonClass:"disable_button",
// 发布按钮
publicButtonClass:"disable_button",
},
mutations: {
// 初始化所有数据
INIT_all(state){
state.evaluationSecondResourceListData = []
state.evaluationSecondResourceData = []
state.evaluationMainResourceData = []
state.changeMpsPlanParam = {}
state.xAxis = []
state.yAxis = []
state.selectArticleDemandRow = {}
state.customerId = ""
state.artId = ""
state.resourceId = ""
state.resourceType = ""
},
// 初始化资源负荷新数据
INIT_evaluationSecondResourceData(state) {
state.evaluationSecondResourceData = []
},
// 初始化资源负荷新数据
INIT_evaluationSecondResourceListData(state) {
state.evaluationSecondResourceListData = []
},
// 初始化资源负荷旧数据
INIT_evaluationMainResourceData(state) {
state.evaluationMainResourceData = []
},
// 初始化模式选择下拉列表选项
INIT_mpsPlanModeOption(state){
state.mpsPlanModeOptions = []
},
// 初始化模式规则选项
INIT_mpsRuleOptions(state){
state.mpsRuleOptions = []
},
// 初始化模式规则选项
INIT_yAxis(state){
state.yAxis = []
},
// 初始化最小覆盖期类型选项
INIT_minCoverPeriodTypeOptions(state){
state.minCoverPeriodTypeOptions = []
},
// 初始化最大覆盖期类型选项
INIT_maxCoverPeriodTypeOptions(state){
state.maxCoverPeriodTypeOptions = []
},
// 初始化选择物料数据行
INIT_selectArticleDemandRow(state){
state.selectArticleDemandRow = {}
},
// 设置客户ID
SET_customerId (state, payload) {
state.customerId = payload
},
// 设置物料ID
SET_artId (state, payload) {
state.artId = payload
},
// 设置资源ID
SET_resourceId (state, payload) {
state.resourceId = payload
},
// 设置资源类型
SET_resourceType (state, payload) {
state.resourceType = payload
},
// 设置变更资源计划参数
SET_changeMpsPlanParam(state, payload) {
state.changeMpsPlanParam = payload
},
// 设置资源需求数据加载
SET_articleDemandLoading(state, payload) {
state.articleDemandLoading = payload
},
// 设置物料需求数据
SET_articleDemandData(state, payload) {
state.articleDemandData = payload
},
SET_articleDemandTableData(state, payload) {
state.articleDemandTableData = payload
},
// 设置选择物料数据行
SET_selectArticleDemandRow(state, payload){
state.selectArticleDemandRow = payload
},
SET_selectArticleDemandRowIndex(state, payload){
state.selectArticleDemandRowIndex = payload
},
// 设置资源负荷新数据加载
SET_evaluationSecondResourceLoading(state, payload) {
state.evaluationSecondResourceLoading = payload
},
// 设置资源负荷旧数据加载
SET_evaluationMainResourceLoading(state, payload) {
state.evaluationMainResourceLoading = payload
},
// 设置资源负荷新数据
SET_evaluationSecondResourceData(state, payload) {
state.evaluationSecondResourceData = payload
},
// 设置次要资源数据列表
SET_evaluationSecondResourceListData(state, payload) {
state.evaluationSecondResourceListData = payload
},
// 设置资源负荷旧数据
SET_evaluationMainResourceData(state, payload) {
state.evaluationMainResourceData = payload
},
SET_mpsPlanModeOption(state, payload){
state.mpsPlanModeOptions = payload
},
// 初始化模式规则选项
SET_mpsRuleOptions(state, payload){
state.mpsRuleOptions = payload
},
// 初始化最小覆盖期类型选项
SET_minCoverPeriodTypeOptions(state, payload){
state.minCoverPeriodTypeOptions = payload
},
// 初始化最大覆盖期类型选项
SET_maxCoverPeriodTypeOptions(state, payload){
state.maxCoverPeriodTypeOptions = payload
},
// 设置X轴
SET_xAxis(state, payload){
payload.forEach((item,index) => {
if(item.charAt(item.length - 1) == '*') {
payload[index] = item.substr(0,item.length - 1 )
}
})
state.xAxis = payload
},
// 设置Y轴
SET_yAxis(state, payload){
state.yAxis = payload
},
// 设置 设置需求表格高度
SET_articleDemandHeight(state, payload){
state.articleDemandHeight = payload
},
// 设置 资源评估表格高度
SET_calculateTableHeight(state, payload){
state.calculateTableHeight = payload
},
// 设置Y轴
SET_articleCharHeight(state, payload){
state.articleCharHeight = payload
},
// 设置编辑按钮状态
SET_editButtonClass(state, payload){
state.editButtonClass = payload
},
// 设置编辑按钮状态
SET_publicButtonClass(state, payload){
state.publicButtonClass = payload
},
TOGGLE_showChar(state){
state.showChar = !state.showChar
},
RESET_articleChar(state){
let temp = state.yAxis
state.yAxis = []
state.yAxis = temp
state.showChar = !state.showChar
state.showChar = !state.showChar
},
// 是否取消资源选择
CHANGE_selectResource(state){
state.isSelectResource = !state.isSelectResource
},
},
actions:{
// 获得Mps模式选项
getMpsModeList({commit}) {
commit('INIT_mpsPlanModeOption')
getStanderOne({ statid: 'MpsPlanMode' }).then(({ data = [] }) => {
let mode = {}
data.forEach(item => {
mode[item['Stdef-StdefTyp']] = item['Stdef-Bez']
})
let options = []
getMpsModeList().then( ({ data = []}) => {
data.forEach(item => {
options.push({
key:item['AP_MpsSetting-MpsSettingNr'],
label:mode[item['AP_MpsSetting-MpsRule']]+"-"+item['AP_MpsSetting-Descr'],
})
})
commit('SET_mpsPlanModeOption',options)
})
});
},
// 获得Mps规则选项
getMpsRuleOptions({commit}) {
commit('INIT_mpsRuleOptions')
getStanderOne({ statid: 'AP_MpsSetting-MpsRule' }).then(({ data = [] }) => {
commit('SET_mpsRuleOptions',data)
});
},
// 获得最小覆盖周期选项
getMinCoverPeriodTypeOptions({commit}) {
commit('INIT_minCoverPeriodTypeOptions')
getStanderOne({ statid: 'AP_MpsSetting-DefaultMinCoverPeriodType' }).then(({ data = [] }) => {
commit('SET_minCoverPeriodTypeOptions',data)
});
},
// 获得最大覆盖周期选项
getMaxCoverPeriodTypeOptions({commit}) {
commit('INIT_maxCoverPeriodTypeOptions')
getStanderOne({ statid: 'AP_MpsSetting-DefaultMaxCoverPeriodType' }).then(({ data = [] }) => {
commit('SET_maxCoverPeriodTypeOptions',data)
});
},
}
// 是否显示表单
showChar: false,
// 编辑按钮样式
editButtonClass: "disable_button",
// 发布按钮
publicButtonClass: "disable_button",
evaluationLoadPercent: 0,
evaluationLoadInterval: {}
},
mutations: {
// 初始化所有数据
INIT_all(state) {
state.evaluationSecondResourceListData = []
state.evaluationSecondResourceData = []
state.evaluationMainResourceData = []
state.changeMpsPlanParam = {}
state.xAxis = []
state.yAxis = []
state.selectArticleDemandRow = {}
state.customerId = ""
state.artId = ""
state.resourceId = ""
state.resourceType = ""
},
// 初始化资源负荷新数据
INIT_evaluationSecondResourceData(state) {
state.evaluationSecondResourceData = []
},
// 初始化资源负荷新数据
INIT_evaluationSecondResourceListData(state) {
state.evaluationSecondResourceListData = []
},
// 初始化资源负荷旧数据
INIT_evaluationMainResourceData(state) {
state.evaluationMainResourceData = []
},
// 初始化模式选择下拉列表选项
INIT_mpsPlanModeOption(state) {
state.mpsPlanModeOptions = []
},
// 初始化模式规则选项
INIT_mpsRuleOptions(state) {
state.mpsRuleOptions = []
},
// 初始化模式规则选项
INIT_yAxis(state) {
state.yAxis = []
},
// 初始化最小覆盖期类型选项
INIT_minCoverPeriodTypeOptions(state) {
state.minCoverPeriodTypeOptions = []
},
// 初始化最大覆盖期类型选项
INIT_maxCoverPeriodTypeOptions(state) {
state.maxCoverPeriodTypeOptions = []
},
// 初始化选择物料数据行
INIT_selectArticleDemandRow(state) {
state.selectArticleDemandRow = {}
},
// 设置客户ID
SET_customerId(state, payload) {
state.customerId = payload
},
// 设置物料ID
SET_artId(state, payload) {
state.artId = payload
},
// 设置资源ID
SET_resourceId(state, payload) {
state.resourceId = payload
},
// 设置资源类型
SET_resourceType(state, payload) {
state.resourceType = payload
},
// 设置变更资源计划参数
SET_changeMpsPlanParam(state, payload) {
state.changeMpsPlanParam = payload
},
// 设置资源需求数据加载
SET_articleDemandLoading(state, payload) {
state.articleDemandLoading = payload
},
// 设置物料需求数据
SET_articleDemandData(state, payload) {
state.articleDemandData = payload
},
SET_articleDemandTableData(state, payload) {
state.articleDemandTableData = payload
},
// 设置选择物料数据行
SET_selectArticleDemandRow(state, payload) {
state.selectArticleDemandRow = payload
},
SET_selectArticleDemandRowIndex(state, payload) {
state.selectArticleDemandRowIndex = payload
},
// 设置资源负荷新数据加载
SET_evaluationSecondResourceLoading(state, payload) {
state.evaluationSecondResourceLoading = payload
},
// 设置资源负荷旧数据加载
SET_evaluationMainResourceLoading(state, payload) {
state.evaluationMainResourceLoading = payload
},
// 设置资源负荷新数据
SET_evaluationSecondResourceData(state, payload) {
state.evaluationSecondResourceData = payload
},
// 设置次要资源数据列表
SET_evaluationSecondResourceListData(state, payload) {
state.evaluationSecondResourceListData = payload
},
// 设置资源负荷旧数据
SET_evaluationMainResourceData(state, payload) {
state.evaluationMainResourceData = payload
},
SET_mpsPlanModeOption(state, payload) {
state.mpsPlanModeOptions = payload
},
// 初始化模式规则选项
SET_mpsRuleOptions(state, payload) {
state.mpsRuleOptions = payload
},
// 初始化最小覆盖期类型选项
SET_minCoverPeriodTypeOptions(state, payload) {
state.minCoverPeriodTypeOptions = payload
},
// 初始化最大覆盖期类型选项
SET_maxCoverPeriodTypeOptions(state, payload) {
state.maxCoverPeriodTypeOptions = payload
},
// 设置X轴
SET_xAxis(state, payload) {
payload.forEach((item, index) => {
if (item.charAt(item.length - 1) == '*') {
payload[index] = item.substr(0, item.length - 1)
}
})
state.xAxis = payload
},
// 设置Y轴
SET_yAxis(state, payload) {
state.yAxis = payload
},
// 设置 设置需求表格高度
SET_articleDemandHeight(state, payload) {
state.articleDemandHeight = payload
},
// 设置 资源评估表格高度
SET_calculateTableHeight(state, payload) {
state.calculateTableHeight = payload
},
// 设置Y轴
SET_articleCharHeight(state, payload) {
state.articleCharHeight = payload
},
// 设置编辑按钮状态
SET_editButtonClass(state, payload) {
state.editButtonClass = payload
},
// 设置编辑按钮状态
SET_publicButtonClass(state, payload) {
state.publicButtonClass = payload
},
SET_evaluationLoadPercent(state, payload) {
if (payload) {
let load = 1
let temp = 100
state.evaluationLoadInterval = setInterval(() => {
if (load > 10) {
temp++
}
load++
state.evaluationLoadPercent = parseInt(load / temp * 100)
}, 1000)
} else {
state.evaluationLoadPercent = 100
clearInterval(state.evaluationLoadInterval)
setTimeout(() => {
state.evaluationLoadPercent = 0
}, 1000)
}
},
TOGGLE_showChar(state) {
state.showChar = !state.showChar
},
RESET_articleChar(state) {
let temp = state.yAxis
state.yAxis = []
state.yAxis = temp
state.showChar = !state.showChar
state.showChar = !state.showChar
},
// 是否取消资源选择
CHANGE_selectResource(state) {
state.isSelectResource = !state.isSelectResource
},
},
actions: {
// 获得Mps模式选项
getMpsModeList({ commit }) {
commit('INIT_mpsPlanModeOption')
getStanderOne({ statid: 'MpsPlanMode' }).then(({ data = [] }) => {
let mode = {}
data.forEach(item => {
mode[item['Stdef-StdefTyp']] = item['Stdef-Bez']
})
let options = []
getMpsModeList().then(({ data = [] }) => {
data.forEach(item => {
options.push({
key: item['AP_MpsSetting-MpsSettingNr'],
label: mode[item['AP_MpsSetting-MpsRule']] + "-" + item['AP_MpsSetting-Descr'],
})
})
commit('SET_mpsPlanModeOption', options)
})
});
},
// 获得Mps规则选项
getMpsRuleOptions({ commit }) {
commit('INIT_mpsRuleOptions')
getStanderOne({ statid: 'AP_MpsSetting-MpsRule' }).then(({ data = [] }) => {
commit('SET_mpsRuleOptions', data)
});
},
// 获得最小覆盖周期选项
getMinCoverPeriodTypeOptions({ commit }) {
commit('INIT_minCoverPeriodTypeOptions')
getStanderOne({ statid: 'AP_MpsSetting-DefaultMinCoverPeriodType' }).then(({ data = [] }) => {
commit('SET_minCoverPeriodTypeOptions', data)
});
},
// 获得最大覆盖周期选项
getMaxCoverPeriodTypeOptions({ commit }) {
commit('INIT_maxCoverPeriodTypeOptions')
getStanderOne({ statid: 'AP_MpsSetting-DefaultMaxCoverPeriodType' }).then(({ data = [] }) => {
commit('SET_maxCoverPeriodTypeOptions', data)
});
},
}
};


+ 11
- 1
src/views/plan/workbench/homePage/customer/index.vue View File

@ -41,7 +41,7 @@ import { get } from "@/server/api.js";
//
get(`/admin/base/customer/customertree`).then(({ code, data }) => {
if (code === 200) {
this.customerData = data
this.customerData = this.editTreeNode(data)
if (this.currentCustomId) {
data[0].Children.forEach(el => {
el.Children.forEach(elChild => {
@ -59,6 +59,16 @@ import { get } from "@/server/api.js";
})
},
methods: {
editTreeNode(data){
data.forEach(item => {
if(!item.Children && typeof(item.Children) != 'undefined' && item.children != 0) {
item.Label = item.CustomerId + "-" + item.Label
} else {
this.editTreeNode(item.Children)
}
})
return data
},
filterNode(value, data) {
if (!value) return true
return data.Label.indexOf(value) !== -1


+ 1
- 1
src/views/productionPlanning/customerForecastDemandReview/resourceContent/evaluation/char.vue View File

@ -87,7 +87,7 @@ export default {
let option = {
title: { text: this.Title},
tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } },
legend: { data: this.legendList,top:'%1' },
legend: { data: this.legendList,top:'%1',type:"scroll" },
grid: { top: '19%', left: "3%", right: "3%", bottom: "1%", containLabel: true },
xAxis: [{ type: "category", data: this.weeksList }],
yAxis: [{ type: "value" }],


+ 34
- 10
src/views/productionPlanning/customerForecastDemandReview/resourceContent/evaluation/index.vue View File

@ -1,13 +1,24 @@
<template>
<div class="wrapper" v-loading='evaluationMainResourceLoading'>
<div class="wrapper">
<div class="tool_list">
<!-- <div class="button_list">
<img class="image_button" :src="refreshImageUrl" @click="refreshData" title="刷新数据">
</div> -->
<div class="button_list">
<!-- <img class="image_button" :src="refreshImageUrl" @click="refreshData" title="刷新数据"> -->
<el-switch v-model="showChar"
inactive-text="显示图表"
active-color="#35B0A6"
inactive-color="#FF3B31" title="显示图表" />
</div>
</div>
<template v-if="showChar">
<div class="char_box" v-if="evaluationMainResourceData.length">
<Char :DataList="evaluationMainResourceData" Title="主要资源"></Char>
</div>
<el-progress type="circle" :percentage="evaluationLoadPercent" v-if="evaluationLoadPercent"></el-progress>
<template v-if="evaluationSecondResourceListData.length">
<template v-for="(evaluationSecondResourceData,index) in evaluationSecondResourceListData" :key="index">
<div class="char_box" v-loading='evaluationSecondResourceLoading'>
@ -15,12 +26,14 @@
</div>
</template>
</template>
</template>
</div>
</template>
<script>
import Char from './char'
import refreshImageUrl from '@/assets/icon/refresh.png'
import {mapState} from 'vuex'
import {mapState,mapMutations} from 'vuex'
export default {
components: {
@ -28,21 +41,25 @@ export default {
},
data() {
return {
showChar:true,
refreshImageUrl:refreshImageUrl,
};
},
created () {
created(){
},
computed: {
...mapState("customerForecastDemandReview",[
'evaluationLoadPercent',
'evaluationSecondResourceLoading',
'evaluationMainResourceLoading',
'evaluationSecondResourceListData',
'evaluationMainResourceData'
])
}
},
methods: {
...mapMutations("customerForecastDemandReview",["SET_evaluationLoadPercent"])
},
};
</script>
<style lang="less" scoped>
@ -51,15 +68,22 @@ export default {
width: 100%;
display: flex;
flex-direction: column;
:deep(.el-progress-circle) {
margin: 100px auto;
}
.tool_list{
width: 100%;
height: 30px;
display: flex;
justify-content: flex-end;
.button_list {
width: 75px;
width: 120px;
height: 32px;
display: flex;
margin-right: 50px;
align-items: center;
.image_button {
margin: 2px 5px;


+ 8
- 0
src/views/productionPlanning/customerForecastDemandReview/resourceContent/index.vue View File

@ -54,6 +54,7 @@ export default {
this.SET_evaluationMainResourceLoading(true)
this.INIT_evaluationMainResourceData()
this.INIT_evaluationSecondResourceListData()
this.SET_evaluationLoadPercent(true)
changeMpsPlan(param).then( ({ data = []}) => {
this.SET_evaluationMainResourceLoading(false)
this.SET_evaluationSecondResourceLoading(false)
@ -63,9 +64,11 @@ export default {
let row = this.selectArticleDemandRow
this.INIT_selectArticleDemandRow()
this.SET_selectArticleDemandRow(row)
this.SET_evaluationLoadPercent(false)
} ).catch(()=> {
this.SET_evaluationMainResourceLoading(false)
this.SET_evaluationSecondResourceLoading(false)
this.SET_evaluationLoadPercent(false)
})
},
deep:true
@ -79,11 +82,14 @@ export default {
if(this.activeName == "evaluation") {
this.SET_evaluationSecondResourceLoading(true)
this.SET_evaluationMainResourceLoading(true)
this.SET_evaluationLoadPercent(true)
getMpsPlan({[this.resourceType==1?"resouceid":"secondresourceid"] : value}).then( ({data = [] }) => {
this.SET_evaluationMainResourceData(data['ArticleResourceMpsGroupLst']|| [])
this.SET_evaluationSecondResourceListData(data['ArticleSecondResourceMpsGroupLst']|| [])
this.SET_evaluationSecondResourceLoading(false)
this.SET_evaluationMainResourceLoading(false)
this.SET_evaluationLoadPercent(false)
if(this.evaluationMainResourceData.length == 0) {
this.$message({
type:"error",
@ -93,6 +99,7 @@ export default {
}).catch(() => {
this.SET_evaluationSecondResourceLoading(false)
this.SET_evaluationMainResourceLoading(false)
this.SET_evaluationLoadPercent(false)
})
}
},
@ -136,6 +143,7 @@ export default {
"INIT_selectArticleDemandRow",
"SET_evaluationSecondResourceListData",
"INIT_evaluationSecondResourceListData",
"SET_evaluationLoadPercent"
]),
//
handlePublic(param){


+ 1
- 1
src/views/system/user/addOrEdit.vue View File

@ -48,7 +48,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="关联员工" prop="User-CustCommissioner">
<el-select v-model="form['User-CustCommissioner']" placeholder="请选择" >
<el-select clearable v-model="form['User-CustCommissioner']" placeholder="请选择" >
<el-option
v-for="item in custCommissionerOptions"
:key="item['FNumber']"


Loading…
Cancel
Save