|
@@ -202,14 +202,13 @@
|
|
|
placeholder="共锁人"
|
|
placeholder="共锁人"
|
|
|
clearable
|
|
clearable
|
|
|
multiple
|
|
multiple
|
|
|
- disabled
|
|
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="dict in this.listUserOption"
|
|
|
|
|
- :key="dict.value"
|
|
|
|
|
- :label="dict.label"
|
|
|
|
|
- :value="dict.value"
|
|
|
|
|
|
|
+ v-for="dict in this.form.ticketUserDTOList"
|
|
|
|
|
+ :key="dict.userId"
|
|
|
|
|
+ :label="dict.username"
|
|
|
|
|
+ :value="dict.username"
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -223,9 +222,9 @@
|
|
|
</el-button
|
|
</el-button
|
|
|
>
|
|
>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="开始时间" prop="startTime">
|
|
|
|
|
|
|
+ <el-form-item label="开始时间" prop="ticketStartTime">
|
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
- v-model="form.startTime"
|
|
|
|
|
|
|
+ v-model="form.ticketStartTime"
|
|
|
type="datetime"
|
|
type="datetime"
|
|
|
placeholder="选择日期时间"
|
|
placeholder="选择日期时间"
|
|
|
align="right"
|
|
align="right"
|
|
@@ -234,9 +233,9 @@
|
|
|
>
|
|
>
|
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束时间" prop="endTime">
|
|
|
|
|
|
|
+ <el-form-item label="结束时间" prop="ticketEndTime">
|
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
- v-model="form.endTime"
|
|
|
|
|
|
|
+ v-model="form.ticketEndTime"
|
|
|
type="datetime"
|
|
type="datetime"
|
|
|
placeholder="选择日期时间"
|
|
placeholder="选择日期时间"
|
|
|
align="right"
|
|
align="right"
|
|
@@ -301,6 +300,7 @@
|
|
|
clearable
|
|
clearable
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
multiple
|
|
multiple
|
|
|
|
|
+ @change="changeInsideUser"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="dict in this.listUserOption"
|
|
v-for="dict in this.listUserOption"
|
|
@@ -310,27 +310,13 @@
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
-<!-- <el-form-item label="用户类型" prop="nickName" v-if="insideMumber">-->
|
|
|
|
|
-<!-- <el-select-->
|
|
|
|
|
-<!-- v-model="dialogForm.userType"-->
|
|
|
|
|
-<!-- placeholder="请选择人员"-->
|
|
|
|
|
-<!-- clearable-->
|
|
|
|
|
-<!-- style="width: 100%"-->
|
|
|
|
|
-<!-- multiple-->
|
|
|
|
|
-<!-- >-->
|
|
|
|
|
-<!-- <el-option-->
|
|
|
|
|
-<!-- v-for="dict in dict.type.is_user_type"-->
|
|
|
|
|
-<!-- :key="dict.value"-->
|
|
|
|
|
-<!-- :label="dict.label"-->
|
|
|
|
|
-<!-- :value="dict.value"-->
|
|
|
|
|
-<!-- />-->
|
|
|
|
|
-<!-- </el-select>-->
|
|
|
|
|
-<!-- </el-form-item>-->
|
|
|
|
|
|
|
+
|
|
|
<el-form-item label="人员名称" prop="mumberId" v-if="outsideMumber">
|
|
<el-form-item label="人员名称" prop="mumberId" v-if="outsideMumber">
|
|
|
<el-input
|
|
<el-input
|
|
|
v-model="dialogForm.username"
|
|
v-model="dialogForm.username"
|
|
|
placeholder="请输入人员名称"
|
|
placeholder="请输入人员名称"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
|
|
+ @change="outSideUserInput"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
@@ -356,7 +342,8 @@ import {
|
|
|
deleteIsJobTicket,
|
|
deleteIsJobTicket,
|
|
|
getworkareaList
|
|
getworkareaList
|
|
|
} from '@/api/mes/job/job'
|
|
} from '@/api/mes/job/job'
|
|
|
-import { listAllWorkshop } from '@/api/mes/md/workshop'
|
|
|
|
|
|
|
+import { listWorkshop } from '@/api/mes/md/workshop'
|
|
|
|
|
+import {listWorkarea} from '@/api/mes/wa/workarea'
|
|
|
import { getIsSopPage } from '@/api/mes/sop/sopindex'
|
|
import { getIsSopPage } from '@/api/mes/sop/sopindex'
|
|
|
import { listUser } from '@/api/system/user'
|
|
import { listUser } from '@/api/system/user'
|
|
|
import { listDept } from '@/api/system/dept'
|
|
import { listDept } from '@/api/system/dept'
|
|
@@ -388,14 +375,14 @@ export default {
|
|
|
locker: '', //上锁人
|
|
locker: '', //上锁人
|
|
|
coLocker: '', //共锁人
|
|
coLocker: '', //共锁人
|
|
|
ticketStartTime: '', //开始时间
|
|
ticketStartTime: '', //开始时间
|
|
|
- ticketendTime: '', //结束时间
|
|
|
|
|
|
|
+ ticketEndTime: '', //结束时间
|
|
|
ticketUserDTOList: [
|
|
ticketUserDTOList: [
|
|
|
- {
|
|
|
|
|
- userId: '',
|
|
|
|
|
- userName: '',
|
|
|
|
|
- userRole: '',//作业票角色 暂时不传递
|
|
|
|
|
- userType: ''//用户类型 上锁人或共锁人
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // {
|
|
|
|
|
+ // userId: '',
|
|
|
|
|
+ // userName: '',
|
|
|
|
|
+ // userRole: '',//作业票角色 暂时不传递
|
|
|
|
|
+ // userType: ''//用户类型 上锁人或共锁人
|
|
|
|
|
+ // }
|
|
|
]//所选择的用户
|
|
]//所选择的用户
|
|
|
},
|
|
},
|
|
|
dialogForm: {
|
|
dialogForm: {
|
|
@@ -457,6 +444,18 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ tableData: {
|
|
|
|
|
+ handler(newVal) {
|
|
|
|
|
+ // 将 pointId 提取出来并连接成一个字符串
|
|
|
|
|
+ if (newVal && newVal.length > 0) {
|
|
|
|
|
+ this.form.pointIds = this.tableData.map(item => item.pointId).join(',');
|
|
|
|
|
+ console.log(this.form.pointIds,this.tableData,'pointIds')
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ deep: true
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
computed: {
|
|
computed: {
|
|
|
...mapGetters('sopSelectPoints', [
|
|
...mapGetters('sopSelectPoints', [
|
|
|
'getPointTableData'
|
|
'getPointTableData'
|
|
@@ -465,6 +464,7 @@ export default {
|
|
|
mounted() {
|
|
mounted() {
|
|
|
this.getSopList()
|
|
this.getSopList()
|
|
|
this.getUser()
|
|
this.getUser()
|
|
|
|
|
+
|
|
|
console.log(this.getPointTableData, 'this.getPointTableData')
|
|
console.log(this.getPointTableData, 'this.getPointTableData')
|
|
|
if (this.getPointTableData) {
|
|
if (this.getPointTableData) {
|
|
|
this.tableData = this.getPointTableData.pointDetailVOList.map((item) => {
|
|
this.tableData = this.getPointTableData.pointDetailVOList.map((item) => {
|
|
@@ -475,9 +475,20 @@ export default {
|
|
|
powerType: item.powerType
|
|
powerType: item.powerType
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ formatDateTime(date) {
|
|
|
|
|
+ const year = date.getFullYear().toString().padStart(2, '0');
|
|
|
|
|
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
|
|
|
+ const day = date.getDate().toString().padStart(2, '0');
|
|
|
|
|
+ const hours = date.getHours().toString().padStart(2, '0');
|
|
|
|
|
+ const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
|
|
|
+ const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
|
|
|
+
|
|
|
|
|
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
|
|
|
+ },
|
|
|
getSopList() {
|
|
getSopList() {
|
|
|
const query = {
|
|
const query = {
|
|
|
current: 1,
|
|
current: 1,
|
|
@@ -499,7 +510,6 @@ export default {
|
|
|
return {
|
|
return {
|
|
|
label: item.nickName,
|
|
label: item.nickName,
|
|
|
value: item.userId,
|
|
value: item.userId,
|
|
|
- key: item.deptId
|
|
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}),
|
|
}),
|
|
@@ -509,7 +519,7 @@ export default {
|
|
|
return {
|
|
return {
|
|
|
label: item.deptName,
|
|
label: item.deptName,
|
|
|
value: item.deptId,
|
|
value: item.deptId,
|
|
|
- key: item.parentId
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
@@ -517,6 +527,9 @@ export default {
|
|
|
// 添加内部人员 部门下拉的chage事件
|
|
// 添加内部人员 部门下拉的chage事件
|
|
|
DeptChage(val) {
|
|
DeptChage(val) {
|
|
|
console.log(val, ' 部门下拉')
|
|
console.log(val, ' 部门下拉')
|
|
|
|
|
+ // 每次选中先清空用户下拉
|
|
|
|
|
+ this.listUserOption=[]
|
|
|
|
|
+ this.dialogForm.nickName=null
|
|
|
const query = {
|
|
const query = {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
pageSize: 100000,
|
|
pageSize: 100000,
|
|
@@ -527,8 +540,7 @@ export default {
|
|
|
this.listUserOption = res.rows.map((item) => {
|
|
this.listUserOption = res.rows.map((item) => {
|
|
|
return {
|
|
return {
|
|
|
label: item.nickName,
|
|
label: item.nickName,
|
|
|
- value: item.deptId,
|
|
|
|
|
- key: item.userId
|
|
|
|
|
|
|
+ value: item.userId,
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
@@ -539,13 +551,62 @@ export default {
|
|
|
console.log(this.jobProps, '父组件jobProps')
|
|
console.log(this.jobProps, '父组件jobProps')
|
|
|
},
|
|
},
|
|
|
// 上锁人下拉选择change事件
|
|
// 上锁人下拉选择change事件
|
|
|
- handlelockerChage(val){
|
|
|
|
|
- console.log(val,'上锁人chage')
|
|
|
|
|
- const user=this.listUserOption.filter((item) => {
|
|
|
|
|
- return item.value == val
|
|
|
|
|
- })
|
|
|
|
|
- console.log(user,'用户')
|
|
|
|
|
-
|
|
|
|
|
|
|
+ handlelockerChage(val) {
|
|
|
|
|
+ console.log(val, '上锁人chage');
|
|
|
|
|
+ const user = this.listUserOption.find(item => item.value === val);
|
|
|
|
|
+
|
|
|
|
|
+ if (user && this.form.locker !== '') {
|
|
|
|
|
+ const existingUser = this.form.ticketUserDTOList.find(u => u.userName === user.label);
|
|
|
|
|
+ if (!existingUser) {
|
|
|
|
|
+ this.form.ticketUserDTOList.push({
|
|
|
|
|
+ userName: user.label,
|
|
|
|
|
+ userId: user.value,
|
|
|
|
|
+ userType: 0
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(this.form.ticketUserDTOList, '用户');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log('用户已存在', user.label);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 添加内部人员的用户新增到ticketUserDTOList这个数据里
|
|
|
|
|
+ changeInsideUser(values) {
|
|
|
|
|
+ this.form.coLocker=this.form.ticketUserDTOList
|
|
|
|
|
+ const usersinside = values.map(value => this.listUserOption.find(item => item.value === value)).filter(Boolean);
|
|
|
|
|
+ usersinside.forEach(user => {
|
|
|
|
|
+ const existingUser = this.form.ticketUserDTOList.find(u => u.userName === user.label);
|
|
|
|
|
+ if (!existingUser) {
|
|
|
|
|
+ this.form.ticketUserDTOList.push({
|
|
|
|
|
+ userName: user.label,
|
|
|
|
|
+ userId: user.value,
|
|
|
|
|
+ userType: 1
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log('用户已存在', user.label);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ this.updateCoLocker()
|
|
|
|
|
+ console.log(this.form.ticketUserDTOList, '用户');
|
|
|
|
|
+ },
|
|
|
|
|
+ // 添加外部人员 输入名称 userType==q userId==0
|
|
|
|
|
+ outSideUserInput(value) {
|
|
|
|
|
+ console.log(value, '外部人员名称');
|
|
|
|
|
+ this.form.coLocker=[...this.dialogForm.username]
|
|
|
|
|
+ const existingUser = this.form.ticketUserDTOList.find(u => u.userName === value);
|
|
|
|
|
+ if (!existingUser) {
|
|
|
|
|
+ this.form.ticketUserDTOList.push({
|
|
|
|
|
+ userName: value,
|
|
|
|
|
+ userId: 0,
|
|
|
|
|
+ userType: 1
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(this.form.ticketUserDTOList, '用户');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log('用户已存在', value);
|
|
|
|
|
+ }
|
|
|
|
|
+ this.updateCoLocker()
|
|
|
|
|
+ },
|
|
|
|
|
+ updateCoLocker() {
|
|
|
|
|
+ this.form.coLocker = this.form.ticketUserDTOList.map(user => user.userName);
|
|
|
},
|
|
},
|
|
|
handleClick(tab, event) {
|
|
handleClick(tab, event) {
|
|
|
// console.log(tab, event);
|
|
// console.log(tab, event);
|
|
@@ -559,14 +620,79 @@ export default {
|
|
|
console.log(val, 'nextStep')
|
|
console.log(val, 'nextStep')
|
|
|
this.activeName = val
|
|
this.activeName = val
|
|
|
console.log('我点击了下一步')
|
|
console.log('我点击了下一步')
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
- confirm() {
|
|
|
|
|
- console.log('确认')
|
|
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
- // 子组件逆向传递选中的隔离点
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ async getWorkareaId(query) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await listWorkarea(query);
|
|
|
|
|
+ console.log(res, '工作区域page');
|
|
|
|
|
+ return res.data.records[0].workareaId;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取工作区域ID失败', error);
|
|
|
|
|
+ throw error;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ async getWorkshopId(query) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await listWorkshop(query);
|
|
|
|
|
+ console.log(res,'车间id')
|
|
|
|
|
+ return res.rows[0].workshopId;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取车间ID失败', error);
|
|
|
|
|
+ throw error;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ async confirm() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 格式化时间
|
|
|
|
|
+ this.form.ticketStartTime = this.formatDateTime(new Date(this.form.ticketStartTime));
|
|
|
|
|
+ this.form.ticketEndTime = this.formatDateTime(new Date(this.form.ticketEndTime));
|
|
|
|
|
+ console.log(this.form, '拿到的所有参数确认');
|
|
|
|
|
+
|
|
|
|
|
+ const query = {
|
|
|
|
|
+ current: 1,
|
|
|
|
|
+ size: 100000,
|
|
|
|
|
+ workareaName: this.form.workline,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const query1 = {
|
|
|
|
|
+ current: 1,
|
|
|
|
|
+ size: 100000,
|
|
|
|
|
+ workshopName: this.form.workshopName,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const workareaId = await this.getWorkareaId(query);
|
|
|
|
|
+ const workshopId = await this.getWorkshopId(query1);
|
|
|
|
|
+
|
|
|
|
|
+ const data = {
|
|
|
|
|
+ pointIds: this.form.pointIds,
|
|
|
|
|
+ sopId: this.form.sopId,
|
|
|
|
|
+ ticketCode: this.form.ticketCode,
|
|
|
|
|
+ ticketContent: this.form.ticketContent,
|
|
|
|
|
+ ticketEndTime: this.form.ticketEndTime,
|
|
|
|
|
+ ticketName: this.form.ticketName,
|
|
|
|
|
+ ticketStartTime: this.form.ticketStartTime,
|
|
|
|
|
+ ticketType: this.form.ticketType,
|
|
|
|
|
+ ticketUserDTOList: this.form.ticketUserDTOList,
|
|
|
|
|
+ workareaId: workareaId,
|
|
|
|
|
+ workshopId: workshopId
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const res = await addJobTicket(data);
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ this.$router.go(-1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.error('提交工单失败', res);
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('确认过程中发生错误', error);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ console.log('确认');
|
|
|
|
|
+ },
|
|
|
// 子组件逆向传递选中的隔离点
|
|
// 子组件逆向传递选中的隔离点
|
|
|
|
|
+
|
|
|
handleSelectPoint(points) {
|
|
handleSelectPoint(points) {
|
|
|
console.log(points, '父组件接收逆向传递选中的隔离点')
|
|
console.log(points, '父组件接收逆向传递选中的隔离点')
|
|
|
|
|
|
|
@@ -596,37 +722,37 @@ export default {
|
|
|
// 更新 form.spoint 为最新选中的隔离点数组
|
|
// 更新 form.spoint 为最新选中的隔离点数组
|
|
|
this.form.spoint = points.map((point) => point.pointId)
|
|
this.form.spoint = points.map((point) => point.pointId)
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
|
|
+ },
|
|
|
// 车间你逆向传递拿到的隔离点数据产线
|
|
// 车间你逆向传递拿到的隔离点数据产线
|
|
|
handleProductLineSelected(selectedOption) {
|
|
handleProductLineSelected(selectedOption) {
|
|
|
// console.log(selectedOption, '父组件接收到的 selectedOption');
|
|
// console.log(selectedOption, '父组件接收到的 selectedOption');
|
|
|
this.points = selectedOption
|
|
this.points = selectedOption
|
|
|
this.form.workline = selectedOption.label
|
|
this.form.workline = selectedOption.label
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
|
|
+ },
|
|
|
// 车间子组件逆传递车间相关数据车间
|
|
// 车间子组件逆传递车间相关数据车间
|
|
|
handleWorkshopSelected(selectedOption) {
|
|
handleWorkshopSelected(selectedOption) {
|
|
|
console.log(selectedOption, 'handleWorkshopSelected')
|
|
console.log(selectedOption, 'handleWorkshopSelected')
|
|
|
this.emitWorkShop = selectedOption
|
|
this.emitWorkShop = selectedOption
|
|
|
this.form.workshopName = selectedOption.label
|
|
this.form.workshopName = selectedOption.label
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
|
|
+ },
|
|
|
// 添加内部人员
|
|
// 添加内部人员
|
|
|
addInside() {
|
|
addInside() {
|
|
|
this.open = true
|
|
this.open = true
|
|
|
this.title = '添加内部人员'
|
|
this.title = '添加内部人员'
|
|
|
this.insideMumber = true
|
|
this.insideMumber = true
|
|
|
this.outsideMumber = false
|
|
this.outsideMumber = false
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
|
|
+ this.form.ticketUserDTOList=[]
|
|
|
|
|
+ this.dialogForm.deptId=""
|
|
|
|
|
+ this.dialogForm.nickname=""
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
addOutside() {
|
|
addOutside() {
|
|
|
this.open = true
|
|
this.open = true
|
|
|
this.title = '添加外部人员'
|
|
this.title = '添加外部人员'
|
|
|
this.insideMumber = false
|
|
this.insideMumber = false
|
|
|
this.outsideMumber = true
|
|
this.outsideMumber = true
|
|
|
- }
|
|
|
|
|
- ,
|
|
|
|
|
|
|
+ this.dialogForm.username=""
|
|
|
|
|
+ },
|
|
|
// 取消按钮
|
|
// 取消按钮
|
|
|
cancel() {
|
|
cancel() {
|
|
|
this.open = false
|
|
this.open = false
|