修改问题

dev-scheduling
zhangdi 2 months ago
parent 956c222f0d
commit 5ad03e9304
  1. 41
      src/components/jh-select/index.vue
  2. 496
      src/views/oem/oemCustomer/setCraftAbility.vue

@ -52,10 +52,10 @@ export default {
type: String, type: String,
default: '', // id default: '', // id
}, },
title:{ title: {
type: String, type: String,
default: '新增' default: '新增',
} },
}, },
data() { data() {
return { return {
@ -69,6 +69,7 @@ export default {
dropdownVisible: false, dropdownVisible: false,
bindTimer: null, bindTimer: null,
total: 0, total: 0,
isSearching: false, //
}; };
}, },
watch: { watch: {
@ -100,7 +101,14 @@ export default {
let timeout = null; let timeout = null;
return (...args) => { return (...args) => {
clearTimeout(timeout); clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait); // /
const validArgs = args
.map(arg => {
if (arg && arg.target) return arg.target.value; //
return arg;
})
.filter(arg => arg != null);
timeout = setTimeout(() => func.apply(this, validArgs), wait);
}; };
}, },
@ -172,7 +180,25 @@ export default {
}, },
handleSearch(val) { handleSearch(val) {
this.searchText = val; //
let searchVal = '';
// InputEvent
if (val && typeof val === 'object' && val.target) {
searchVal = (val.target.value || '').trim();
}
//
else {
searchVal = String(val || '').trim();
}
//
this.searchText = searchVal;
this.localValue = searchVal;
//
this.isSearching = true;
this.reset(); this.reset();
this.debounceSearch(); this.debounceSearch();
}, },
@ -210,7 +236,7 @@ export default {
// //
async getEchoData(val) { async getEchoData(val) {
try { try {
const params = { [this.echoParamsKey]: val==null?'':val }; const params = { [this.echoParamsKey]: val == null ? '' : val };
let res; let res;
if (this.echoMethod.toLowerCase() === 'post') { if (this.echoMethod.toLowerCase() === 'post') {
res = await axios.post(this.echoApi, params); res = await axios.post(this.echoApi, params);
@ -229,9 +255,10 @@ export default {
}, },
async initEcho() { async initEcho() {
if (this.isSearching || this.searchText) return;
const val = this.localValue; const val = this.localValue;
// (!val || !this.echoApi)&& // (!val || !this.echoApi)&&
if (this.title=='新增') return; if (this.title === '新增' || !val) return;
// //
if (this.multiple && Array.isArray(val)) { if (this.multiple && Array.isArray(val)) {

@ -1,7 +1,13 @@
<template> <template>
<div> <div>
<el-dialog title="设置工艺能力" v-model="setCrewShow" :before-close="cancel" width="60%" @open="open"> <el-dialog
<!-- <avue-crud ref="crud" :option="option" :data="data" @row-update="rowUpdate" @row-save="rowSave" title="设置工艺能力"
v-model="setCrewShow"
:before-close="cancel"
width="60%"
@open="open"
>
<!-- <avue-crud ref="crud" :option="option" :data="data" @row-update="rowUpdate" @row-save="rowSave"
@row-click="handleRowClick"> @row-click="handleRowClick">
<template #menu="{ row, index }"> <template #menu="{ row, index }">
<el-button text type="primary" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'" <el-button text type="primary" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
@ -14,74 +20,70 @@
</el-button> </el-button>
</template> </template>
</avue-crud> --> </avue-crud> -->
<div> <div>
<el-button type="primary" @click="insertEvent()" <el-button type="primary" @click="insertEvent()">插入一行</el-button>
>插入一行</el-button
>
<el-button plain type="danger" @click="remove">删除选择行</el-button> <el-button plain type="danger" @click="remove">删除选择行</el-button>
<!-- <el-button type="primary" @click="handleSave">保存</el-button> --> <!-- <el-button type="primary" @click="handleSave">保存</el-button> -->
</div> </div>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<el-table <el-table :data="capacityList" @select="selectChange">
:data="capacityList"
@select="selectChange"
>
<el-table-column type="selection" width="55px"></el-table-column> <el-table-column type="selection" width="55px"></el-table-column>
<el-table-column align="center" label="工艺能力" prop="id"> <el-table-column align="center" label="工艺能力" prop="id">
<template #default="scope"> <template #default="scope">
<el-select v-model="scope.row.id"> <el-select v-model="scope.row.id">
<el-option v-for="item in abilityList" :key="item.id" :label="item.caName" :value="item.id"></el-option> <el-option
v-for="item in abilityList"
:key="item.id"
:label="item.caName"
:value="item.id"
></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="计划员" prop="planner"> <el-table-column align="center" label="计划员" prop="planner">
<template #default="scope"> <template #default="scope">
<jhSelect <jhSelect
:value="scope.row.planner" :value="scope.row.planner"
@input="val => (scope.row.planner = val)" placeholder="请搜索选择"
placeholder="请搜索选择" api-url="/blade-system/user/page"
api-url="/blade-system/user/page" echo-api="/blade-system/user/page"
echo-api="/blade-system/user/page" echoParamsKey="ids"
echoParamsKey="ids" echo-method="get"
echo-method="get" api-method="get"
api-method="get" list-key="records"
list-key="records" total-key="total"
total-key="total" label-key="realName"
label-key="realName" value-key="id"
value-key="id" search-key="realName"
search-key="id" :debounce-time="500"
:debounce-time="500" :title="'修改'"
@change="changeTeacher" />
:title="'修改'" <!-- <el-select v-model="scope.row.planner" remote filterable :remote-method="getPlanner">
/>
<!-- <el-select v-model="scope.row.planner" remote filterable :remote-method="getPlanner">
<el-option v-for="item in plannerList" :key="item.id" :label="item.realName" :value="item.id"></el-option> <el-option v-for="item in plannerList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
</el-select> --> </el-select> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="调度员" prop="dispatcher"> <el-table-column align="center" label="调度员" prop="dispatcher">
<template #default="scope"> <template #default="scope">
<!-- <el-select v-model="scope.row.dispatcher" remote filterable :remote-method="getDispatcher"> <!-- <el-select v-model="scope.row.dispatcher" remote filterable :remote-method="getDispatcher">
<el-option v-for="item in dispatcherList" :key="item.id" :label="item.realName" :value="item.id"></el-option> <el-option v-for="item in dispatcherList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
</el-select> --> </el-select> -->
<jhSelect <jhSelect
:value="scope.row.dispatcher" :value="scope.row.dispatcher"
@input="val => (scope.row.dispatcher = val)" placeholder="请搜索选择"
placeholder="请搜索选择" api-url="/blade-system/user/page"
api-url="/blade-system/user/page" echo-api="/blade-system/user/page"
echo-api="/blade-system/user/page" echoParamsKey="ids"
echoParamsKey="ids" echo-method="get"
echo-method="get" api-method="get"
api-method="get" list-key="records"
list-key="records" total-key="total"
total-key="total" label-key="realName"
label-key="realName" value-key="id"
value-key="id" search-key="realName"
search-key="id" :debounce-time="500"
:debounce-time="500" :title="'修改'"
@change="changeTeacher" />
:title="'修改'"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="是否大批量" prop="isBatch"> <el-table-column align="center" label="是否大批量" prop="isBatch">
@ -91,216 +93,216 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancel()">取消</el-button> <el-button @click="cancel()">取消</el-button>
<el-button type="primary" @click="submit()"> 确认</el-button> <el-button type="primary" @click="submit()"> 确认</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {getCraftAbility,getAbility,getAllUser,saveCraft} from "@/api/basicData/oemCustomer" import { getCraftAbility, getAbility, getAllUser, saveCraft } from '@/api/basicData/oemCustomer';
import jhSelect from '@/components/jh-select/index.vue'; import jhSelect from '@/components/jh-select/index.vue';
export default { export default {
props: { props: {
setCraftAbilityOpen: { setCraftAbilityOpen: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
ocId: { ocId: {
type: Number, type: Number,
default: null default: null,
} },
},
components: {
jhSelect,
},
data() {
return {
setCrewShow: false,
loading: false,
formData: {},
abilityList: [],
plannerList: [],
dispatcherList: [],
capacityList: [],
data: [],
};
},
mounted() {
this.getAbilityData();
this.getAbilitySelect();
},
methods: {
getAbilitySelect() {
getAbility().then(res => {
this.abilityList = res.data.data;
});
},
async getAbilityData() {
const res = await getCraftAbility({
id: this.ocId,
});
this.capacityList = res.data.data;
// const user = await getAllUser({current:1,size:9999})
// this.plannerList = user.data.data.records
// this.dispatcherList = user.data.data.records
this.capacityList.map(item => {
item.dispatcher =
item.dispatcher == null || item.dispatcher == -1 ? '' : item.dispatcher + '';
item.planner = item.planner == null || item.planner == -1 ? '' : item.planner + '';
item.isBatch = item.isBatch == '1' ? true : false;
item._select = false;
// if(item.dispatcherName != ''){
// getAllUser({realName:item.dispatcherName}).then(res =>{
// const mergedData = [...this.dispatcherList, ...res.data.data.records];
// const uniqueData = Array.from(
// new Map(mergedData.map(item => [item.id, item])).values()
// );
// this.dispatcherList = uniqueData
// })
// }
// if(item.plannerName != ''){
// getAllUser({realName:item.plannerName}).then(res =>{
// const mergedData = [...this.plannerList, ...res.data.data.records];
// const uniqueData = Array.from(
// new Map(mergedData.map(item => [item.id, item])).values()
// );
// this.plannerList = uniqueData
// })
// }
});
this.setCrewShow = this.setCraftAbilityOpen;
},
getPlanner(query) {
// if(query == ''){
// getAllUser({
// current:1,
// size:9999
// }).then(res =>{
// this.plannerList = res.data.data.records
// })
// }else{
// getAllUser({
// realName:query
// }).then(res =>{
// this.plannerList = res.data.data.records
// })
// }
},
getDispatcher(query) {
// if(query == ''){
// getAllUser({
// current:1,
// size:9999
// }).then(res =>{
// this.dispatcherList = res.data.data.records
// })
// }else{
// getAllUser({
// realName:query
// }).then(res =>{
// this.dispatcherList = res.data.data.records
// })
// }
}, },
components: { insertEvent() {
jhSelect const record = { _select: false };
this.capacityList.push(record);
}, },
data() { selectChange(list, row) {
return { row._select = !row._select;
setCrewShow: false,
loading: false,
formData: {},
abilityList:[],
plannerList:[],
dispatcherList:[],
capacityList:[],
data: [],
};
}, },
mounted() { remove() {
this.getAbilityData() let arr = this.capacityList.filter(item => item._select);
this.getAbilitySelect() if (arr.length != 0) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
if (this.rowId) {
let deleteData = this.capacityList.filter(item => item._select);
this.deleteTidArr = deleteData.filter(item => item.tidId);
}
let deleteArr = this.capacityList.filter(item => !item._select);
this.capacityList = deleteArr;
});
} else {
this.$message.error('请至少选择一条数据进行操作!');
}
}, },
methods: { handleRowClick(row) {
getAbilitySelect(){ this.$message({
getAbility().then(res =>{ showClose: true,
this.abilityList = res.data.data message: '序号: ' + row.id,
}) type: 'success',
}, });
async getAbilityData(){ },
const res = await getCraftAbility({ open() {
id:this.ocId // this.formData.ocId = this.id;
}) // if (this.id != null) {
this.capacityList = res.data.data // this.$ajax.get('bsOemCustomer/getByKey/' + this.id).then((res) => {
// const user = await getAllUser({current:1,size:9999}) // if (this.$ifAjax(res)) {
// this.plannerList = user.data.data.records // this.formData = res.data;
// this.dispatcherList = user.data.data.records // }
this.capacityList.map(item =>{ // });
item.dispatcher = item.dispatcher==null||item.dispatcher==-1?'':item.dispatcher + '' // }
item.planner = item.planner==null||item.planner==-1?'':item.planner + '' },
item.isBatch = item.isBatch == '1' ? true : false submit() {
item._select = false console.log('ca----------', this.capacityList);
// if(item.dispatcherName != ''){ if (this.capacityList.length == 0) {
// getAllUser({realName:item.dispatcherName}).then(res =>{ this.$message.error('请至少新增一条数据');
// const mergedData = [...this.dispatcherList, ...res.data.data.records]; return;
// const uniqueData = Array.from( }
// new Map(mergedData.map(item => [item.id, item])).values() let data = [];
// ); this.capacityList.map(item => {
// this.dispatcherList = uniqueData data.push({
// }) id: item.id,
// } planner: item.planner,
// if(item.plannerName != ''){ dispatcher: item.dispatcher,
// getAllUser({realName:item.plannerName}).then(res =>{ isBatch: item.isBatch ? '1' : '0',
// const mergedData = [...this.plannerList, ...res.data.data.records]; });
// const uniqueData = Array.from( });
// new Map(mergedData.map(item => [item.id, item])).values() let params = {
// ); id: this.ocId,
// this.plannerList = uniqueData crafs: data,
// }) };
// }
})
this.setCrewShow = this.setCraftAbilityOpen
},
getPlanner(query){
// if(query == ''){
// getAllUser({
// current:1,
// size:9999
// }).then(res =>{
// this.plannerList = res.data.data.records
// })
// }else{
// getAllUser({
// realName:query
// }).then(res =>{
// this.plannerList = res.data.data.records
// })
// }
},
getDispatcher(query){
// if(query == ''){
// getAllUser({
// current:1,
// size:9999
// }).then(res =>{
// this.dispatcherList = res.data.data.records
// })
// }else{
// getAllUser({
// realName:query
// }).then(res =>{
// this.dispatcherList = res.data.data.records
// })
// }
},
insertEvent(){
const record = { _select: false };
this.capacityList.push(record)
},
selectChange(list, row) {
row._select = !row._select;
},
remove() {
let arr = this.capacityList.filter((item) => item._select);
if (arr.length != 0) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if (this.rowId) {
let deleteData = this.capacityList.filter((item) => item._select);
this.deleteTidArr = deleteData.filter((item) => item.tidId);
}
let deleteArr = this.capacityList.filter((item) => !item._select);
this.capacityList = deleteArr;
});
} else {
this.$message.error("请至少选择一条数据进行操作!");
}
},
handleRowClick(row) {
this.$message({
showClose: true,
message: '序号: ' + row.id,
type: 'success'
})
},
open() {
// this.formData.ocId = this.id;
// if (this.id != null) {
// this.$ajax.get('bsOemCustomer/getByKey/' + this.id).then((res) => {
// if (this.$ifAjax(res)) {
// this.formData = res.data;
// }
// });
// }
},
submit() {
console.log('ca----------',this.capacityList)
if(this.capacityList.length == 0){
this.$message.error('请至少新增一条数据')
return
}
let data = []
this.capacityList.map(item =>{
data.push({
id:item.id,
planner:item.planner,
dispatcher:item.dispatcher,
isBatch:item.isBatch ? '1' : '0'
})
})
let params = {
id:this.ocId,
crafs:data
}
saveCraft(params).then(res =>{ saveCraft(params).then(res => {
if(res.data.code === 200){ if (res.data.code === 200) {
this.$message.success('工艺能力设置成功'); this.$message.success('工艺能力设置成功');
this.cancel(true) this.cancel(true);
} }
}) });
// this.cancel(false) // this.cancel(false)
// this.$refs.form.validate((valid) => { // this.$refs.form.validate((valid) => {
// if (valid) { // if (valid) {
// this.$ajax // this.$ajax
// .post('bsOemCustomer/setPassword', this.formData) // .post('bsOemCustomer/setPassword', this.formData)
// .then((res) => { // .then((res) => {
// if (this.$ifAjax(res)) { // if (this.$ifAjax(res)) {
// this.$message.success(this.$t('global.saveOk')); // this.$message.success(this.$t('global.saveOk'));
// this.cancel(true); // this.cancel(true);
// } // }
// }); // });
// } // }
// }); // });
}, },
onCancel() { onCancel() {
this.cancel(false); this.cancel(false);
}, },
cancel(isRefresh) { cancel(isRefresh) {
this.setCrewShow = false this.setCrewShow = false;
this.formData = { ocId: null }; this.formData = { ocId: null };
// this.$refs.form.resetFields(); // this.$refs.form.resetFields();
this.$emit('cancel', typeof isRefresh === 'boolean' && isRefresh); this.$emit('cancel', typeof isRefresh === 'boolean' && isRefresh);
}
}, },
},
}; };
</script> </script>

Loading…
Cancel
Save