修改问题

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: {
type: Number,
default: null
}
}, },
components: { ocId: {
jhSelect type: Number,
default: null,
}, },
data() { },
return { components: {
setCrewShow: false, jhSelect,
loading: false, },
formData: {}, data() {
abilityList:[], return {
plannerList:[], setCrewShow: false,
dispatcherList:[], loading: false,
capacityList:[], formData: {},
data: [], abilityList: [],
}; plannerList: [],
dispatcherList: [],
capacityList: [],
data: [],
};
},
mounted() {
this.getAbilityData();
this.getAbilitySelect();
},
methods: {
getAbilitySelect() {
getAbility().then(res => {
this.abilityList = res.data.data;
});
}, },
mounted() { async getAbilityData() {
this.getAbilityData() const res = await getCraftAbility({
this.getAbilitySelect() 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;
}, },
methods: { getPlanner(query) {
getAbilitySelect(){ // if(query == ''){
getAbility().then(res =>{ // getAllUser({
this.abilityList = res.data.data // current:1,
}) // size:9999
}, // }).then(res =>{
async getAbilityData(){ // this.plannerList = res.data.data.records
const res = await getCraftAbility({ // })
id:this.ocId // }else{
}) // getAllUser({
this.capacityList = res.data.data // realName:query
// const user = await getAllUser({current:1,size:9999}) // }).then(res =>{
// this.plannerList = user.data.data.records // this.plannerList = res.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 + '' getDispatcher(query) {
item.isBatch = item.isBatch == '1' ? true : false // if(query == ''){
item._select = false // getAllUser({
// if(item.dispatcherName != ''){ // current:1,
// getAllUser({realName:item.dispatcherName}).then(res =>{ // size:9999
// const mergedData = [...this.dispatcherList, ...res.data.data.records]; // }).then(res =>{
// const uniqueData = Array.from( // this.dispatcherList = res.data.data.records
// new Map(mergedData.map(item => [item.id, item])).values() // })
// ); // }else{
// this.dispatcherList = uniqueData // getAllUser({
// }) // realName:query
// } // }).then(res =>{
// if(item.plannerName != ''){ // this.dispatcherList = res.data.data.records
// 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() insertEvent() {
// ); const record = { _select: false };
// this.plannerList = uniqueData this.capacityList.push(record);
// }) },
// } selectChange(list, row) {
}) row._select = !row._select;
this.setCrewShow = this.setCraftAbilityOpen },
}, remove() {
getPlanner(query){ let arr = this.capacityList.filter(item => item._select);
// if(query == ''){ if (arr.length != 0) {
// getAllUser({ this.$confirm('确定将选择数据删除?', {
// current:1, confirmButtonText: '确定',
// size:9999 cancelButtonText: '取消',
// }).then(res =>{ type: 'warning',
// this.plannerList = res.data.data.records }).then(() => {
// }) if (this.rowId) {
// }else{ let deleteData = this.capacityList.filter(item => item._select);
// getAllUser({ this.deleteTidArr = deleteData.filter(item => item.tidId);
// realName:query }
// }).then(res =>{ let deleteArr = this.capacityList.filter(item => !item._select);
// this.plannerList = res.data.data.records this.capacityList = deleteArr;
// }) });
// } } else {
}, this.$message.error('请至少选择一条数据进行操作!');
getDispatcher(query){ }
// if(query == ''){ },
// getAllUser({ handleRowClick(row) {
// current:1, this.$message({
// size:9999 showClose: true,
// }).then(res =>{ message: '序号: ' + row.id,
// this.dispatcherList = res.data.data.records type: 'success',
// }) });
// }else{ },
// getAllUser({ open() {
// realName:query // this.formData.ocId = this.id;
// }).then(res =>{ // if (this.id != null) {
// this.dispatcherList = res.data.data.records // this.$ajax.get('bsOemCustomer/getByKey/' + this.id).then((res) => {
// }) // if (this.$ifAjax(res)) {
// } // this.formData = res.data;
}, // }
insertEvent(){ // });
const record = { _select: false }; // }
this.capacityList.push(record) },
}, submit() {
selectChange(list, row) { console.log('ca----------', this.capacityList);
row._select = !row._select; if (this.capacityList.length == 0) {
}, this.$message.error('请至少新增一条数据');
remove() { return;
let arr = this.capacityList.filter((item) => item._select); }
if (arr.length != 0) { let data = [];
this.$confirm("确定将选择数据删除?", { this.capacityList.map(item => {
confirmButtonText: "确定", data.push({
cancelButtonText: "取消", id: item.id,
type: "warning", planner: item.planner,
}).then(() => { dispatcher: item.dispatcher,
if (this.rowId) { isBatch: item.isBatch ? '1' : '0',
let deleteData = this.capacityList.filter((item) => item._select); });
this.deleteTidArr = deleteData.filter((item) => item.tidId); });
} let params = {
let deleteArr = this.capacityList.filter((item) => !item._select); id: this.ocId,
this.capacityList = deleteArr; crafs: data,
}); };
} 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 =>{
if(res.data.code === 200){
this.$message.success('工艺能力设置成功');
this.cancel(true)
}
})
// this.cancel(false) saveCraft(params).then(res => {
// this.$refs.form.validate((valid) => { if (res.data.code === 200) {
// if (valid) { this.$message.success('工艺能力设置成功');
// this.$ajax this.cancel(true);
// .post('bsOemCustomer/setPassword', this.formData) }
// .then((res) => { });
// if (this.$ifAjax(res)) {
// this.$message.success(this.$t('global.saveOk'));
// this.cancel(true);
// }
// });
// }
// });
},
onCancel() { // this.cancel(false)
this.cancel(false); // this.$refs.form.validate((valid) => {
}, // if (valid) {
cancel(isRefresh) { // this.$ajax
this.setCrewShow = false // .post('bsOemCustomer/setPassword', this.formData)
// .then((res) => {
// if (this.$ifAjax(res)) {
// this.$message.success(this.$t('global.saveOk'));
// this.cancel(true);
// }
// });
// }
// });
},
this.formData = { ocId: null }; onCancel() {
// this.$refs.form.resetFields(); this.cancel(false);
this.$emit('cancel', typeof isRefresh === 'boolean' && isRefresh);
}
}, },
cancel(isRefresh) {
this.setCrewShow = false;
this.formData = { ocId: null };
// this.$refs.form.resetFields();
this.$emit('cancel', typeof isRefresh === 'boolean' && isRefresh);
},
},
}; };
</script> </script>

Loading…
Cancel
Save