|
|
@@ -6,168 +6,66 @@
|
|
|
:append-to-body="true"
|
|
|
:close-on-click-modal="true"
|
|
|
custom-class="ele-dialog-form"
|
|
|
- :title="isUpdate ? '修改用户' : '添加用户'"
|
|
|
+ :title="isUpdate ? '修改工作中心' : '添加工作中心'"
|
|
|
@update:visible="updateVisible"
|
|
|
>
|
|
|
<header-title title="基本信息"></header-title>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="工序编码:" prop="code">
|
|
|
+ <el-form-item label="工作中心编码:" prop="code">
|
|
|
<el-input
|
|
|
clearable
|
|
|
disabled
|
|
|
v-model="form.code"
|
|
|
- placeholder="请输入工序编码"
|
|
|
+ placeholder="请输入"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="工序名称:" prop="name">
|
|
|
- <el-input
|
|
|
- v-model="form.name"
|
|
|
- clearable
|
|
|
- placeholder="请输入工序名称"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="控制码:" prop="controlId">
|
|
|
- <el-input v-model="form.controlId" placeholder="请输入工序控制码" />
|
|
|
+ <el-form-item label="工作中心名称:" prop="name">
|
|
|
+ <el-input v-model="form.name" clearable placeholder="请输入" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="工作中心:" prop="workCenterId">
|
|
|
- <el-input
|
|
|
- placeholder="请输入工作中心"
|
|
|
- v-model="form.workCenterId"
|
|
|
- />
|
|
|
+ <el-form-item label="所属工厂:" prop="factoryId">
|
|
|
+ <el-select v-model="form.factoryId" placeholder="所属工厂">
|
|
|
+ <el-option
|
|
|
+ v-for="item in flist"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="工序时间单位:" prop="timeUnit">
|
|
|
- <el-select v-model="form.timeUnit">
|
|
|
+ <el-form-item label="工作中心类别:" prop="categoryType">
|
|
|
+ <el-select v-model="form.categoryType" placeholder="工作中心类别">
|
|
|
<el-option
|
|
|
- v-for="item in timeType"
|
|
|
+ v-for="item in categoryTypes"
|
|
|
:key="item.code"
|
|
|
:label="item.label"
|
|
|
- :value="item.code"
|
|
|
+ :value="item.value"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <header-title title="工序节拍时间"></header-title>
|
|
|
- <el-form ref="form" :model="form" label-width="120px">
|
|
|
- <el-row>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="工序休息时长:">
|
|
|
- <el-input
|
|
|
- v-model="form.workBeat.restTimes"
|
|
|
- placeholder="请输入工序休息时长"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="工序准备时长:">
|
|
|
- <el-input
|
|
|
- v-model="form.workBeat.preTimes"
|
|
|
- clearable
|
|
|
- placeholder="请输入工序准备时长"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="设备生产时长:">
|
|
|
- <el-input
|
|
|
- v-model="form.workBeat.proTimes"
|
|
|
- placeholder="请输入工序控制码"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="其他时长:">
|
|
|
- <el-input
|
|
|
- placeholder="请输入其他时长"
|
|
|
- v-model="form.workBeat.otherTimes"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="8">
|
|
|
- <el-form-item label="节拍时间:">
|
|
|
- <el-input disabled :value="totalTime"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <header-title title="工序间隔时间"></header-title>
|
|
|
- <el-form ref="form" :model="form" label-width="200px">
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="间隔策略:">
|
|
|
- <el-select v-model="form.intervalTime.tactics">
|
|
|
- <el-option
|
|
|
- v-for="item in tacticsType"
|
|
|
- :key="item.code"
|
|
|
- :label="item.label"
|
|
|
- :value="item.code"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="下工序标准准备时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.nextStandardPreTime"
|
|
|
- placeholder="请输入下工序标准准备时间"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="下工序最短准备时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.nextShortPreTime"
|
|
|
- placeholder="请输入下工序最短准备时间"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="本工序标准等待时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.thisStandardWaitTime"
|
|
|
- placeholder="请输入本工序标准等待时间"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="本工序最短准备时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.thisShortPreTime"
|
|
|
- placeholder="请输入本工序最短准备时间"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="本工序结束后标准周转时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.thisStandardBoatTime"
|
|
|
- placeholder="请输入本工序结束后标准周转时间"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="本工序结束后周转最短时间:">
|
|
|
- <el-input
|
|
|
- v-model="form.intervalTime.thisShortBoatTime"
|
|
|
- placeholder="请输入本工序结束后周转最短时间"
|
|
|
- />
|
|
|
+ <el-form-item label="负责人:" prop="leaderUserId">
|
|
|
+ <el-select v-model="form.leaderUserId" placeholder="负责人">
|
|
|
+ <el-option
|
|
|
+ v-for="item in userList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -184,7 +82,7 @@
|
|
|
|
|
|
<script>
|
|
|
// import { emailReg, phoneReg } from 'ele-admin';
|
|
|
- import producetask from '@/api/technology/production';
|
|
|
+ import work from '@/api/technology/work';
|
|
|
|
|
|
import { addUsers, putUsers } from '@/api/system/user';
|
|
|
|
|
|
@@ -193,32 +91,19 @@
|
|
|
// 弹窗是否打开
|
|
|
visible: Boolean,
|
|
|
// 修改回显的数据
|
|
|
- data: Object
|
|
|
+ data: Object,
|
|
|
+ categoryTypes: Array,
|
|
|
+ flist: Array,
|
|
|
+ userList: Array
|
|
|
},
|
|
|
data() {
|
|
|
const defaultForm = {
|
|
|
+ id: null,
|
|
|
code: '',
|
|
|
name: '',
|
|
|
- controlId: '',
|
|
|
- workCenterId: '',
|
|
|
- timeUnit: '',
|
|
|
- intervalTime: {
|
|
|
- nextShortPreTime: '', // 时间单位转换后的下一个短周期的时间,格式为YYYY-MM-DDTHH'
|
|
|
- nextStandardPreTime: '', // 时间单位转换后的下一个正式的周期的时间,格式为YYYY-MM-DD'
|
|
|
- tactics: 1, // 周期工艺描述,格式为JSON字符串或数组形式的对象形式的数据类
|
|
|
- thisShortBoatTime: '',
|
|
|
- thisShortPreTime: '',
|
|
|
- thisStandardBoatTime: '',
|
|
|
- thisStandardWaitTime: ''
|
|
|
- },
|
|
|
-
|
|
|
- workBeat: {
|
|
|
- beatTimes: '',
|
|
|
- otherTimes: '',
|
|
|
- preTimes: '',
|
|
|
- proTimes: '',
|
|
|
- restTimes: ''
|
|
|
- }
|
|
|
+ factoryId: '',
|
|
|
+ categoryType: '',
|
|
|
+ leaderUserId: ''
|
|
|
};
|
|
|
return {
|
|
|
defaultForm,
|
|
|
@@ -239,14 +124,14 @@
|
|
|
{ required: true, message: '请输入工序名称', trigger: 'blur' }
|
|
|
],
|
|
|
code: [{ required: true, trigger: 'change' }],
|
|
|
- controlId: [
|
|
|
- { required: true, message: '请选择控制码', trigger: 'blur' }
|
|
|
+ factoryId: [
|
|
|
+ { required: true, message: '请选择所属工厂', trigger: 'blur' }
|
|
|
],
|
|
|
- workCenterId: [
|
|
|
- { required: true, message: '请选择工作中心', trigger: 'blur' }
|
|
|
+ categoryType: [
|
|
|
+ { required: true, message: '请选择工作中心类别', trigger: 'blur' }
|
|
|
],
|
|
|
- timeUnit: [
|
|
|
- { required: true, message: '请选择时间单位', trigger: 'blur' }
|
|
|
+ leaderUserId: [
|
|
|
+ { required: true, message: '请选择负责人', trigger: 'blur' }
|
|
|
]
|
|
|
},
|
|
|
// 提交状态
|
|
|
@@ -256,15 +141,6 @@
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
- totalTime() {
|
|
|
- let to =
|
|
|
- (-this.form.workBeat.restTimes +
|
|
|
- -this.form.workBeat.preTimes +
|
|
|
- -this.form.workBeat.proTimes +
|
|
|
- -this.form.workBeat.otherTimes) *
|
|
|
- -1;
|
|
|
- return to;
|
|
|
- },
|
|
|
// 是否开启响应式布局
|
|
|
styleResponsive() {
|
|
|
return this.$store.state.theme.styleResponsive;
|
|
|
@@ -277,16 +153,17 @@
|
|
|
if (!valid) {
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- this.form.workBeat.beatTimes = this.totalTime;
|
|
|
-
|
|
|
+ if (!this.isUpdate) {
|
|
|
+ delete this.form.id;
|
|
|
+ }
|
|
|
this.loading = true;
|
|
|
- producetask
|
|
|
- .save(this.form)
|
|
|
+ const saveOrUpdate = this.isUpdate ? work.update : work.save; // 保存或更新工厂函数名称
|
|
|
+ let title = this.isUpdate ? '修改' : '保存';
|
|
|
+ saveOrUpdate(this.form)
|
|
|
.then((msg) => {
|
|
|
this.form = {};
|
|
|
this.loading = false;
|
|
|
- this.$message.success(msg);
|
|
|
+ this.$message.success(title + msg);
|
|
|
this.updateVisible(false);
|
|
|
this.$emit('done');
|
|
|
})
|
|
|
@@ -308,14 +185,12 @@
|
|
|
if (this.data) {
|
|
|
console.log(111111);
|
|
|
|
|
|
- const res = await producetask.getById(this.data.id);
|
|
|
+ // const res = await work.getById(this.data.id);
|
|
|
|
|
|
- this.$util.assignObject(this.form, {
|
|
|
- ...res
|
|
|
- });
|
|
|
+ this.$util.assignObject(this.form, this.data);
|
|
|
this.isUpdate = true;
|
|
|
} else {
|
|
|
- const res = await producetask.getCode();
|
|
|
+ const res = await work.getCode();
|
|
|
this.form.code = res;
|
|
|
this.isUpdate = false;
|
|
|
}
|