|
|
@@ -12,7 +12,6 @@
|
|
|
></SopLeft>
|
|
|
</keep-alive>
|
|
|
<!-- 隔离点 style="position: relative;z-index:0"-->
|
|
|
-
|
|
|
<IsolationLeftVue
|
|
|
v-show="this.activeName == 'second'"
|
|
|
:points="points"
|
|
|
@@ -541,6 +540,7 @@ export default {
|
|
|
listCoLockerOption: null,//共锁人下拉数据
|
|
|
OutSideUserTableData: [],//添加外部人员多个表格
|
|
|
nextUserId: 0//新增外部人员表格序号自定义
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -602,19 +602,31 @@ export default {
|
|
|
selectIsSopById(sopId).then((response) => {
|
|
|
console.log(response, '详细内容')
|
|
|
this.form = response.data
|
|
|
- console.log(response.data.ticketUserDTOList,'response.data.ticketUserDTOList')
|
|
|
+ console.log(response.data.ticketUserDTOList, 'response.data.ticketUserDTOList')
|
|
|
if (response.data.ticketUserDTOList.length > 0) {
|
|
|
- this.openStaffing = true;
|
|
|
+ this.openStaffing = true
|
|
|
}
|
|
|
|
|
|
const value = response.data.ticketUserDTOList //找到上锁人 这里一定要先筛选locker再去给表格筛选 否则表格筛选之后直接不会有上锁人数据了
|
|
|
.filter(item => item.userType == '0')
|
|
|
- .map(item => item.userName);
|
|
|
- this.form.locker=value[0],//map返回的是数字 所以这样写
|
|
|
- console.log(value,response.data.ticketUserDTOList,'form.locker')
|
|
|
- this.form.ticketUserDTOList=response.data.ticketUserDTOList.filter((item)=>{return item.userType=='1'}) ;//过滤上锁人
|
|
|
- this.tableData = response.data.pointDetailVOList
|
|
|
- console.log(this.tableData, '编辑拿到的隔离点数据')
|
|
|
+ .map(item => item.userName)
|
|
|
+ this.form.locker = value[0],//map返回的是数字 所以这样写
|
|
|
+ console.log(value, response.data.ticketUserDTOList, 'form.locker')
|
|
|
+ this.form.ticketUserDTOList = response.data.ticketUserDTOList.filter((item) => {
|
|
|
+ return item.userType == '1'
|
|
|
+ })//过滤上锁人
|
|
|
+
|
|
|
+ // this.tableData = response.data.pointDetailVOList.map((item)=>{
|
|
|
+ // return {
|
|
|
+ // pointName: item.pointName, // 显示的名称
|
|
|
+ // pointId: item.pointId, // 对应的值
|
|
|
+ // pointType: item.pointTypeName,
|
|
|
+ // powerType: item.powerTypeName,
|
|
|
+ // prePointId: item.prePointId
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // console.log(this.tableData, '编辑拿到的隔离点数据')
|
|
|
+
|
|
|
this.sopProps = [response.data]
|
|
|
|
|
|
this.title = '修改隔离点信息'
|
|
|
@@ -643,35 +655,11 @@ export default {
|
|
|
if (!Array.isArray(this.form.spoint)) {
|
|
|
this.form.spoint = []
|
|
|
}
|
|
|
- console.log(this.form.spoint, 'spoint')
|
|
|
-
|
|
|
// 如果没有选中点,逆向传递为空时,使用当前表格数据中的点
|
|
|
if (this.form.spoint.length === 0 && Array.isArray(this.tableData)) {
|
|
|
this.form.spoint = this.tableData.map((point) => point.pointId)
|
|
|
}
|
|
|
|
|
|
- const selectedpointIds = this.form.spoint.join(',')
|
|
|
- const UserList=[...this.form.ticketUserDTOList,...this.newticketUserDTOList]
|
|
|
- const pointsList=this.form.pointDetailVOList.map((item)=>{
|
|
|
- return {
|
|
|
- pointId:item.pointId,
|
|
|
- prePointId:item.prePointId
|
|
|
- }
|
|
|
- })
|
|
|
- console.log(this.form.pointsList)
|
|
|
- const data = {
|
|
|
- pointIds: selectedpointIds,
|
|
|
- sopContent: this.form.sopContent,
|
|
|
- sopCode: this.form.sopCode,
|
|
|
- sopName: this.form.sopName,
|
|
|
- sopType: this.form.sopType,
|
|
|
- workareaId: this.emitworklineId,
|
|
|
- ticketUserDTOList: UserList,
|
|
|
- pointsList: pointsList
|
|
|
- // workshopId: this.emitWorkShop.value
|
|
|
- }
|
|
|
- console.log(data, '新增sop参数')
|
|
|
-
|
|
|
// 编辑模式
|
|
|
if (this.$route.query.sopId !== 'null') {
|
|
|
console.log(this.$route.query.sopId, 'sopIdaaa')
|
|
|
@@ -681,9 +669,28 @@ export default {
|
|
|
this.$message.error('隔离点id不可为空!') // 使用消息提示
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+ const selectedpointIds = this.form.spoint.join(',')
|
|
|
+ const UserList = [...this.form.ticketUserDTOList, ...this.newticketUserDTOList]
|
|
|
+ const pointsList = this.form.pointDetailVOList.map((item) => {
|
|
|
+ return {
|
|
|
+ pointId: item.pointId,
|
|
|
+ prePointId: item.prePointId
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(this.form.pointsList)
|
|
|
+ const data = {
|
|
|
+ pointIds: selectedpointIds,
|
|
|
+ sopContent: this.form.sopContent,
|
|
|
+ sopCode: this.form.sopCode,
|
|
|
+ sopName: this.form.sopName,
|
|
|
+ sopType: this.form.sopType,
|
|
|
+ workareaId: this.emitworklineId,
|
|
|
+ ticketUserDTOList: UserList,
|
|
|
+ pointsList: pointsList
|
|
|
+ // workshopId: this.emitWorkShop.value
|
|
|
+ }
|
|
|
data.sopId = this.form.sopId
|
|
|
-console.log(data,'编辑的参数')
|
|
|
+ console.log(data, '编辑的参数')
|
|
|
updateIsSop(data).then((res) => {
|
|
|
console.log(res, '修改接口')
|
|
|
if (res.code == 200) {
|
|
|
@@ -693,6 +700,26 @@ console.log(data,'编辑的参数')
|
|
|
})
|
|
|
} else {
|
|
|
// 新增模式
|
|
|
+ const selectedpointIds = this.form.spoint.join(',')
|
|
|
+ const UserList = [...this.form.ticketUserDTOList, ...this.newticketUserDTOList]
|
|
|
+ const pointsList = this.tableData.map((item) => {
|
|
|
+ return {
|
|
|
+ pointId: item.pointId,
|
|
|
+ prePointId: item.prePointId
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(this.form.pointsList)
|
|
|
+ const data = {
|
|
|
+ pointIds: selectedpointIds,
|
|
|
+ sopContent: this.form.sopContent,
|
|
|
+ sopCode: this.form.sopCode,
|
|
|
+ sopName: this.form.sopName,
|
|
|
+ sopType: this.form.sopType,
|
|
|
+ workareaId: this.emitworklineId,
|
|
|
+ ticketUserDTOList: UserList,
|
|
|
+ pointsList: pointsList
|
|
|
+ // workshopId: this.emitWorkShop.value
|
|
|
+ }
|
|
|
console.log(data, '新增参数')
|
|
|
addinsertIsSop(data).then((res) => {
|
|
|
console.log(res, '新增接口')
|
|
|
@@ -771,26 +798,33 @@ console.log(data,'编辑的参数')
|
|
|
|
|
|
// 子组件选中的隔离点逆传递拿到的数据
|
|
|
handleSelectPoint(points) {
|
|
|
- // console.log(points, '父组件接收逆向传递选中的隔离点')
|
|
|
- this.tableData = points //子组件传递过来的选中节点
|
|
|
+ console.log(points, '父组件接收逆向传递选中的隔离点');
|
|
|
+
|
|
|
+ // 1. 去除重复的点,使用 Set 确保每个 pointId 唯一
|
|
|
+ const uniquePoints = Array.from(
|
|
|
+ new Set(points.map(point => point.pointId))
|
|
|
+ ).map(id => points.find(point => point.pointId === id));
|
|
|
+
|
|
|
+ console.log(uniquePoints, '去重后的选中节点');
|
|
|
+
|
|
|
+ this.tableData = uniquePoints; // 子组件传递过来的选中节点(去重后)
|
|
|
+
|
|
|
// 使用 Set 来存储传递过来的点值
|
|
|
- const newValues = new Set(points.map((point) => point.pointId))
|
|
|
+ const newValues = new Set(uniquePoints.map((point) => point.pointId));
|
|
|
|
|
|
- // 1. 删除取消选中的点
|
|
|
+ // 2. 删除取消选中的点
|
|
|
const removedPoints = this.tableData
|
|
|
.filter((item) => !newValues.has(item.pointId))
|
|
|
- .map((item) => item.pointId) // 记录被删除的点
|
|
|
+ .map((item) => item.pointId); // 记录被删除的点
|
|
|
|
|
|
this.tableData = this.tableData.filter((item) =>
|
|
|
newValues.has(item.pointId)
|
|
|
- )
|
|
|
- // console.log(this.tableData,'handleSelectPoint函数里的tableData')
|
|
|
- // 2. 确保新增点不会重复
|
|
|
- const existingValues = new Set(
|
|
|
- this.tableData.map((item) => item.pointId)
|
|
|
- )
|
|
|
+ );
|
|
|
+
|
|
|
+ // 3. 确保新增点不会重复
|
|
|
+ const existingValues = new Set(this.tableData.map((item) => item.pointId));
|
|
|
|
|
|
- points.forEach((point) => {
|
|
|
+ uniquePoints.forEach((point) => {
|
|
|
// 如果当前传递的点不在已有的点集中,则添加
|
|
|
if (!existingValues.has(point.pointId)) {
|
|
|
this.tableData.push({
|
|
|
@@ -799,47 +833,115 @@ console.log(data,'编辑的参数')
|
|
|
pointType: point.pointType,
|
|
|
powerType: point.powerType,
|
|
|
prePointId: null
|
|
|
- })
|
|
|
- // console.log(this.tableData,'handleSelectPoint函数里的tableData2')
|
|
|
+ });
|
|
|
+
|
|
|
this.prePointIdOptions.push({
|
|
|
pointName: point.pointName, // 显示的名称
|
|
|
pointId: point.pointId // 对应的值
|
|
|
- })
|
|
|
- this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
- console.log(this.prePointIdOptions, '前置节点设置下拉')
|
|
|
- existingValues.add(point.pointId)
|
|
|
+ });
|
|
|
+ this.initprePointIdOptions = [...this.prePointIdOptions];
|
|
|
+ console.log(this.prePointIdOptions, '前置节点设置下拉');
|
|
|
+ existingValues.add(point.pointId);
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
- // 3. 处理被删除的点,如果这些点作为父节点绑定,则将对应的 prePointId 设置为 null
|
|
|
+ // 4. 处理被删除的点,如果这些点作为父节点绑定,则将对应的 prePointId 设置为 null
|
|
|
this.tableData.forEach((item) => {
|
|
|
if (removedPoints.includes(item.prePointId)) {
|
|
|
- item.prePointId = null
|
|
|
+ item.prePointId = null;
|
|
|
}
|
|
|
- })
|
|
|
- // console.log(this.tableData,'handleSelectPoint函数里的tableData3')
|
|
|
- // 4. 从下拉选项中移除被删除的点
|
|
|
+ });
|
|
|
+
|
|
|
+ // 5. 从下拉选项中移除被删除的点
|
|
|
this.prePointIdOptions = this.prePointIdOptions.filter(
|
|
|
(option) => !removedPoints.includes(option.pointId)
|
|
|
- )
|
|
|
- this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
+ );
|
|
|
+ this.initprePointIdOptions = [...this.prePointIdOptions];
|
|
|
|
|
|
- // 5. 确保下拉选项中仍然保留所有未被删除的点
|
|
|
- const allPoints = points.map((point) => ({
|
|
|
+ // 6. 确保下拉选项中仍然保留所有未被删除的点
|
|
|
+ const allPoints = uniquePoints.map((point) => ({
|
|
|
pointName: point.pointName,
|
|
|
pointId: point.pointId
|
|
|
- }))
|
|
|
+ }));
|
|
|
|
|
|
this.prePointIdOptions = allPoints.filter(
|
|
|
(option) => !removedPoints.includes(option.pointId)
|
|
|
- )
|
|
|
- this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
+ );
|
|
|
+ this.initprePointIdOptions = [...this.prePointIdOptions];
|
|
|
|
|
|
// 更新 form.spoint 为最新选中的隔离点数组
|
|
|
- this.form.spoint = points.map((point) => point.pointId)
|
|
|
-
|
|
|
+ this.form.spoint = uniquePoints.map((point) => point.pointId);
|
|
|
},
|
|
|
|
|
|
+ // handleSelectPoint(points) {
|
|
|
+ // console.log(points, '父组件接收逆向传递选中的隔离点')
|
|
|
+ // this.tableData = points; //子组件传递过来的选中节点
|
|
|
+ // // 使用 Set 来存储传递过来的点值
|
|
|
+ // const newValues = new Set(points.map((point) => point.pointId))
|
|
|
+ //
|
|
|
+ // // 1. 删除取消选中的点
|
|
|
+ // const removedPoints = this.tableData
|
|
|
+ // .filter((item) => !newValues.has(item.pointId))
|
|
|
+ // .map((item) => item.pointId) // 记录被删除的点
|
|
|
+ //
|
|
|
+ // this.tableData = this.tableData.filter((item) =>
|
|
|
+ // newValues.has(item.pointId)
|
|
|
+ // )
|
|
|
+ // // 2. 确保新增点不会重复
|
|
|
+ // const existingValues = new Set(
|
|
|
+ // this.tableData.map((item) => item.pointId)
|
|
|
+ // )
|
|
|
+ //
|
|
|
+ // points.forEach((point) => {
|
|
|
+ // // 如果当前传递的点不在已有的点集中,则添加
|
|
|
+ // if (!existingValues.has(point.pointId)) {
|
|
|
+ // this.tableData.push({
|
|
|
+ // pointName: point.pointName, // 显示的名称
|
|
|
+ // pointId: point.pointId, // 对应的值
|
|
|
+ // pointType: point.pointType,
|
|
|
+ // powerType: point.powerType,
|
|
|
+ // prePointId: null
|
|
|
+ // })
|
|
|
+ //
|
|
|
+ // this.prePointIdOptions.push({
|
|
|
+ // pointName: point.pointName, // 显示的名称
|
|
|
+ // pointId: point.pointId // 对应的值
|
|
|
+ // })
|
|
|
+ // this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
+ // console.log(this.prePointIdOptions, '前置节点设置下拉')
|
|
|
+ // existingValues.add(point.pointId)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ //
|
|
|
+ // // 3. 处理被删除的点,如果这些点作为父节点绑定,则将对应的 prePointId 设置为 null
|
|
|
+ // this.tableData.forEach((item) => {
|
|
|
+ // if (removedPoints.includes(item.prePointId)) {
|
|
|
+ // item.prePointId = null
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ //
|
|
|
+ // // 4. 从下拉选项中移除被删除的点
|
|
|
+ // this.prePointIdOptions = this.prePointIdOptions.filter(
|
|
|
+ // (option) => !removedPoints.includes(option.pointId)
|
|
|
+ // )
|
|
|
+ // this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
+ //
|
|
|
+ // // 5. 确保下拉选项中仍然保留所有未被删除的点
|
|
|
+ // const allPoints = points.map((point) => ({
|
|
|
+ // pointName: point.pointName,
|
|
|
+ // pointId: point.pointId
|
|
|
+ // }))
|
|
|
+ //
|
|
|
+ // this.prePointIdOptions = allPoints.filter(
|
|
|
+ // (option) => !removedPoints.includes(option.pointId)
|
|
|
+ // )
|
|
|
+ // this.initprePointIdOptions = [...this.prePointIdOptions]
|
|
|
+ //
|
|
|
+ // // 更新 form.spoint 为最新选中的隔离点数组
|
|
|
+ // this.form.spoint = points.map((point) => point.pointId)
|
|
|
+ //
|
|
|
+ // },
|
|
|
+
|
|
|
// 车间逆向传递拿到的隔离点数据产线
|
|
|
handleProductLineSelected(selectedOption) {
|
|
|
// console.log(selectedOption, "父组件接收到的 selectedOption");
|