Browse Source

外协周转

wangxin 1 year ago
parent
commit
02ba4b96ff

+ 16 - 0
src/api/business/daywork.js

@@ -22,6 +22,22 @@ export function listForOutsource(query) {
 	})
 }
 
+export function processesForOutsource(query) {
+	return request({
+		url: baseUrl + '/business/productionDaywork/processesForOutsource',
+		method: 'get',
+		params: query
+	})
+}
+
+export function carrierForOutsource(query) {
+	return request({
+		url: baseUrl + '/business/productionDaywork/carrierForOutsource',
+		method: 'get',
+		params: query
+	})
+}
+
 // 查询工序管理
 export function getDayworkProcessList(query) {
 	return request({

+ 20 - 1
src/api/business/outsourcedOrder.js

@@ -19,15 +19,34 @@ export function getOrder(id) {
 	})
 }
 
+export function carrierForOutsource(query) {
+	return request({
+		url: baseUrl + '/business/outsource/carrierForOutsource',
+		method: 'get',
+		params: query
+	})
+}
+
+
 // 新增外协单
 export function addOrder(data) {
 	return request({
-		url: baseUrl + '/business/outsource',
+		url: baseUrl + '/business/outsource/add',
 		method: 'post',
 		data: data
 	})
 }
 
+export function processesForOutsource(data) {
+	return request({
+		url: baseUrl + '/business/outsource/processesForOutsource',
+		method: 'post',
+		data: data
+	})
+}
+
+
+
 // 修改外协单
 export function updateOrder(data) {
 	return request({

+ 179 - 0
src/views/business/outsource/DialogCarrier.vue

@@ -0,0 +1,179 @@
+<template>
+  <el-dialog
+    title="添加箱子"
+    v-model="visible"
+    width="800px"
+    height="400px"
+    @close="close"
+    append-to-body
+    draggable
+  >
+    <el-form
+      ref="dialogForm"
+      :model="queryParams"
+      :inline="true"
+      style="padding-top: 16px"
+    >
+      <el-form-item label="箱号:" prop="code" label-width="104">
+        <el-input
+          v-model.trim="queryParams.processAlias"
+          type="text"
+          @keydown.enter.prevent
+          style="width: 160px"
+          placeholder="请输入关键字"
+          :clearable="true"
+          @keyup.enter="handleSearch"
+        />
+      </el-form-item>
+      <el-form-item label-width="20px">
+        <el-button type="info" icon="Search" @click="handleSearch"
+          >搜索</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-table
+      ref="dialogTable"
+      :data="productList"
+      size="small"
+      v-loading="loading"
+      border
+      height="370px"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="40" align="center" />
+      <el-table-column label="序号" width="56" align="center" type="index" />
+      <el-table-column label="箱号" align="center" prop="code" />
+    </el-table>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button
+          type="primary"
+          icon="Check"
+          :disabled="selections.length === 0"
+          @click="handleMultipleSelected"
+        >
+          确 定
+        </el-button>
+        <el-button type="danger" icon="Close" @click="close">取 消</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+<script setup>
+/**
+ * 需要多选,确定后带回至发货明细中,并且会组合成一个英文逗号分割的字符串
+ * 逻辑
+ * 0、数据来源:根据当前明细对应的daywork_id,找到这个daywork尚未完成的工序。
+ * 		思路:
+ * 		1)先找到这个daywork对应的daywork_item,查找status >= 4,并且是外协的那一条记录
+ * 		2)这条记录中,记录了process_id,这个工序就是外协之前完成的工序,需要到当前daywork对应的标准工艺中查询所有工序
+ *    3)将未完成的工序找出来,可以根据process_id对应的工序的【工序序号】,比这个序号大的,就是未完成的工序。
+ * 		4)这里要注意的是:废品回用、单批单改的工艺,不是标准工艺,要从另外一个表中获得。需要将工序查询分在2个私有方法中实现。避免混淆。
+ *
+ * 1、发货明细每条都对应一个从表,记录该外协产品需要外协的工序,这个从表是不在前端展示的,但要保存到数据库中
+ * 2、选择的工序,在对应的发货明细中,以英文逗号分割的形式存储在当前明细的processNames字段中,
+ *    在form页面中的ref=【dialogProcessesRef】的对话框:multiple-selected="handleMultipleSelectedProcesses"
+ *    中查看
+ * 3、后端 BizOutsourcedOrderController,要保存的数据:
+ * 	 【biz_outsourced_order】
+ *   【biz_outsourced_order_detail】
+ *   【biz_outsourced_order_detail_process】
+ * 4、外协单做完后,需要做外协报工,这个部分的功能是给外协商使用,是一个新的前端工程,需要用到的数据:
+ * 	 【biz_outsourced_order】
+ *   【biz_outsourced_order_detail】
+ *   【biz_outsourced_order_detail_process】
+ * 		外协商要看到,是什么产品,什么工序,多少数量
+ */
+import { carrierForOutsource } from "@/api/business/outsourcedOrder";
+const { proxy } = getCurrentInstance();
+/** 字典数组区 */
+const { process_status } = proxy.useDict("process_status");
+/** 工序变量 */
+const total = ref(0);
+const props = defineProps({
+  multipleSelected: {
+    type: Function,
+    default: null,
+  },
+  supplierId: {
+    type: String,
+    default: "",
+  },
+});
+
+const { multipleSelected, supplierId } = toRefs(props);
+const productList = ref([]);
+const visible = ref(false);
+const lotId = ref({});
+const loading = ref(false);
+const queryParams = ref({
+  pageNum: 1,
+  pageSize: 10,
+});
+const selections = ref([]);
+
+/**
+ * 对话框打开 事件
+ */
+function open(data) {
+  lotId.value = data;
+  queryParams.value.pageNum = 1;
+  queryParams.value.pageSize = 10;
+  visible.value = true;
+  getList();
+}
+
+/**
+ * 对话框关闭 事件
+ */
+function close() {
+  proxy.$refs.dialogForm.resetFields();
+  proxy.$refs.dialogTable.clearSelection();
+  queryParams.value.pageNum = 1;
+  visible.value = false;
+}
+
+/**
+ * 加载数据
+ */
+function getList() {
+  loading.value = true;
+  carrierForOutsource(queryParams.value).then((res) => {
+    productList.value = res.rows;
+    total.value = res.total;
+    loading.value = false;
+  });
+}
+
+/**
+ * 列表checkbox列选择 事件
+ */
+function handleSelectionChange(selection) {
+  selections.value = selection;
+}
+
+/**  搜索 事件 */
+function handleSearch() {
+  getList();
+}
+/** 多选事件 */
+function handleMultipleSelected() {
+  if (multipleSelected.value) {
+    multipleSelected.value(selections.value, lotId.value);
+  }
+  close();
+}
+
+defineExpose({
+  open,
+});
+</script>

+ 112 - 97
src/views/business/outsource/DialogProcesses.vue

@@ -1,52 +1,72 @@
 <template>
-	<el-dialog title="添加工序" v-model="visible" width="800px" height="400px" @close="close" append-to-body draggable>
-		<el-form ref="dialogForm" :model="queryParams" :inline="true" style="padding-top: 16px">
-			<el-form-item label="工序名称:" prop="processAlias" label-width="104">
-				<el-input
-					v-model.trim="queryParams.productDescription"
-					type="text"
-					@keydown.enter.prevent
-					style="width: 160px"
-					placeholder="请输入关键字"
-					:clearable="true"
-					@keyup.enter="handleSearch"
-				/>
-			</el-form-item>
-			<el-form-item label-width="20px">
-				<el-button type="info" icon="Search" @click="handleSearch">搜索</el-button>
-			</el-form-item>
-		</el-form>
+  <el-dialog
+    title="添加工序"
+    v-model="visible"
+    width="800px"
+    height="400px"
+    @close="close"
+    append-to-body
+    draggable
+  >
+    <el-form
+      ref="dialogForm"
+      :model="queryParams"
+      :inline="true"
+      style="padding-top: 16px"
+    >
+      <el-form-item label="工序名称:" prop="processAlias" label-width="104">
+        <el-input
+          v-model.trim="queryParams.processAlias"
+          type="text"
+          @keydown.enter.prevent
+          style="width: 160px"
+          placeholder="请输入关键字"
+          :clearable="true"
+          @keyup.enter="handleSearch"
+        />
+      </el-form-item>
+      <el-form-item label-width="20px">
+        <el-button type="info" icon="Search" @click="handleSearch"
+          >搜索</el-button
+        >
+      </el-form-item>
+    </el-form>
 
-		<el-table
-			ref="dialogTable"
-			:data="productList"
-			size="small"
-			v-loading="loading"
-			border
-			height="370px"
-			@selection-change="handleSelectionChange"
-		>
-			<el-table-column type="selection" width="40" align="center" />
-			<el-table-column label="序号" width="56" align="center" prop="processStepNumber" />
-			<el-table-column label="工序名称" align="center" prop="lotCode" width="96" />
-		</el-table>
-		<!-- 分页 -->
-		<pagination
-			v-show="total > 0"
-			:total="total"
-			v-model:page="queryParams.pageNum"
-			v-model:limit="queryParams.pageSize"
-			@pagination="getList"
-		/>
-		<template #footer>
-			<div class="dialog-footer">
-				<el-button type="primary" icon="Check" :disabled="selections.length === 0" @click="handleMultipleSelected">
-					确 定
-				</el-button>
-				<el-button type="danger" icon="Close" @click="close">取 消</el-button>
-			</div>
-		</template>
-	</el-dialog>
+    <el-table
+      ref="dialogTable"
+      :data="productList"
+      size="small"
+      v-loading="loading"
+      border
+      height="370px"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="40" align="center" />
+      <el-table-column label="序号" width="56" align="center" type="index" />
+      <el-table-column label="工序名称" align="center" prop="processAlias" />
+    </el-table>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button
+          type="primary"
+          icon="Check"
+          :disabled="selections.length === 0"
+          @click="handleMultipleSelected"
+        >
+          确 定
+        </el-button>
+        <el-button type="danger" icon="Close" @click="close">取 消</el-button>
+      </div>
+    </template>
+  </el-dialog>
 </template>
 <script setup>
 /**
@@ -73,91 +93,86 @@
  *   【biz_outsourced_order_detail_process】
  * 		外协商要看到,是什么产品,什么工序,多少数量
  */
-import { listForOutsource } from '@/api/business/daywork'
-const { proxy } = getCurrentInstance()
+import { processesForOutsource } from "@/api/business/daywork";
+const { proxy } = getCurrentInstance();
 /** 字典数组区 */
-const { process_status } = proxy.useDict('process_status')
+const { process_status } = proxy.useDict("process_status");
 /** 工序变量 */
-const total = ref(0)
+const total = ref(0);
 const props = defineProps({
-	multipleSelected: {
-		type: Function,
-		default: null
-	},
-	supplierId: {
-		type: String,
-		default: ''
-	}
-})
+  multipleSelected: {
+    type: Function,
+    default: null,
+  },
+  supplierId: {
+    type: String,
+    default: "",
+  },
+});
 
-const { multipleSelected, supplierId } = toRefs(props)
-const productList = ref([])
-const visible = ref(false)
-const loading = ref(false)
+const { multipleSelected, supplierId } = toRefs(props);
+const productList = ref([]);
+const visible = ref(false);
+const loading = ref(false);
 const queryParams = ref({
-	existingDayworkIds: [],
-	deptCode: '170000',
-	// 是否看所有产品【0:看全部产品,1:只看该外协商配置的产品】
-	isSupplierProducts: 0,
-	supplierId: '',
-	productDescription: '',
-	pageNum: 1,
-	pageSize: 10
-})
-const selections = ref([])
+  pageNum: 1,
+  pageSize: 10,
+});
+const selections = ref([]);
 
 /**
  * 对话框打开 事件
  */
-function open(existingDayworkIds) {
-	visible.value = true
-	queryParams.value.existingDayworkIds = existingDayworkIds
-	getList()
+function open(data) {
+  queryParams.value = { ...data };
+  queryParams.value.pageNum = 1;
+  queryParams.value.pageSize = 10;
+  visible.value = true;
+  getList();
 }
 
 /**
  * 对话框关闭 事件
  */
 function close() {
-	proxy.$refs.dialogForm.resetFields()
-	proxy.$refs.dialogTable.clearSelection()
-	queryParams.value.pageNum = 1
-	visible.value = false
+  proxy.$refs.dialogForm.resetFields();
+  proxy.$refs.dialogTable.clearSelection();
+  queryParams.value.pageNum = 1;
+  visible.value = false;
 }
 
 /**
  * 加载数据
  */
 function getList() {
-	loading.value = true
-	queryParams.value.supplierId = props.supplierId
-	listForOutsource(queryParams.value).then((res) => {
-		productList.value = res.rows
-		total.value = res.total
-		loading.value = false
-	})
+  loading.value = true;
+  processesForOutsource(queryParams.value).then((res) => {
+    productList.value = res.rows;
+    total.value = res.total;
+    loading.value = false;
+  });
 }
 
 /**
  * 列表checkbox列选择 事件
  */
 function handleSelectionChange(selection) {
-	selections.value = selection
+  selections.value = selection;
 }
 
 /**  搜索 事件 */
 function handleSearch() {
-	getList()
+  getList();
 }
 /** 多选事件 */
 function handleMultipleSelected() {
-	if (multipleSelected.value) {
-		multipleSelected.value(selections.value)
-	}
-	close()
+  if (multipleSelected.value) {
+    multipleSelected.value(selections.value);
+  }
+  close();
 }
 
 defineExpose({
-	open
-})
+  open,
+});
 </script>

+ 156 - 113
src/views/business/outsource/DialogProducts.vue

@@ -1,155 +1,198 @@
 <template>
-	<el-dialog title="添加产品" v-model="visible" width="800px" height="400px" @close="close" append-to-body draggable>
-		<el-form ref="dialogForm" :model="queryParams" :inline="true" style="padding-top: 16px">
-			<el-form-item label="产品描述:" prop="productDescription" label-width="104">
-				<el-input
-					v-model.trim="queryParams.productDescription"
-					type="text"
-					@keydown.enter.prevent
-					style="width: 160px"
-					placeholder="请输入关键字"
-					:clearable="true"
-					@keyup.enter="handleSearch"
-				/>
-			</el-form-item>
-			<el-form-item
-				v-if="supplierId !== '' && supplierId !== '0'"
-				label="只看外协商配置的产品:"
-				prop="isSupplierProducts"
-			>
-				<el-switch
-					v-model="queryParams.isSupplierProducts"
-					active-text="是"
-					:active-value="1"
-					inactive-text="否"
-					:inactive-value="0"
-				/>
-			</el-form-item>
-			<el-form-item label-width="20px">
-				<el-button type="info" icon="Search" @click="handleSearch">搜索</el-button>
-			</el-form-item>
-		</el-form>
+  <el-dialog
+    title="添加产品"
+    v-model="visible"
+    width="800px"
+    height="400px"
+    @close="close"
+    append-to-body
+    draggable
+  >
+    <el-form
+      ref="dialogForm"
+      :model="queryParams"
+      :inline="true"
+      style="padding-top: 16px"
+    >
+      <el-form-item
+        label="产品描述:"
+        prop="productDescription"
+        label-width="104"
+      >
+        <el-input
+          v-model.trim="queryParams.productDescription"
+          type="text"
+          @keydown.enter.prevent
+          style="width: 160px"
+          placeholder="请输入关键字"
+          :clearable="true"
+          @keyup.enter="handleSearch"
+        />
+      </el-form-item>
+      <el-form-item
+        v-if="supplierId !== '' && supplierId !== '0'"
+        label="只看外协商配置的产品:"
+        prop="isSupplierProducts"
+      >
+        <el-switch
+          v-model="queryParams.isSupplierProducts"
+          active-text="是"
+          :active-value="1"
+          inactive-text="否"
+          :inactive-value="0"
+        />
+      </el-form-item>
+      <el-form-item label-width="20px">
+        <el-button type="info" icon="Search" @click="handleSearch"
+          >搜索</el-button
+        >
+      </el-form-item>
+    </el-form>
 
-		<el-table
-			ref="dialogTable"
-			:data="productList"
-			size="small"
-			v-loading="loading"
-			border
-			height="370px"
-			@selection-change="handleSelectionChange"
-		>
-			<el-table-column type="selection" width="40" align="center" />
-			<el-table-column type="index" label="行号" width="50" align="center" />
-			<el-table-column label="批次号" align="center" prop="lotCode" width="96" />
-			<el-table-column label="料号" align="center" prop="productCode" width="96" />
-			<el-table-column label="产品描述" align="center" prop="productDescription" />
-			<el-table-column label="箱号" align="center" prop="originalCarrier" width="220" />
-		</el-table>
-		<!-- 分页 -->
-		<pagination
-			v-show="total > 0"
-			:total="total"
-			v-model:page="queryParams.pageNum"
-			v-model:limit="queryParams.pageSize"
-			@pagination="getList"
-		/>
-		<template #footer>
-			<div class="dialog-footer">
-				<el-button type="primary" icon="Check" :disabled="selections.length === 0" @click="handleMultipleSelected">
-					确 定
-				</el-button>
-				<el-button type="danger" icon="Close" @click="close">取 消</el-button>
-			</div>
-		</template>
-	</el-dialog>
+    <el-table
+      ref="dialogTable"
+      :data="productList"
+      size="small"
+      v-loading="loading"
+      border
+      height="370px"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="40" align="center" />
+      <el-table-column type="index" label="行号" width="50" align="center" />
+      <el-table-column
+        label="批次号"
+        align="center"
+        prop="lotCode"
+        width="96"
+      />
+      <el-table-column
+        label="料号"
+        align="center"
+        prop="productCode"
+        width="96"
+      />
+      <el-table-column
+        label="产品描述"
+        align="center"
+        prop="productDescription"
+      />
+      <el-table-column
+        label="箱号"
+        align="center"
+        prop="originalCarrier"
+        width="220"
+      />
+    </el-table>
+    <!-- 分页 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      v-model:page="queryParams.pageNum"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button
+          type="primary"
+          icon="Check"
+          :disabled="selections.length === 0"
+          @click="handleMultipleSelected"
+        >
+          确 定
+        </el-button>
+        <el-button type="danger" icon="Close" @click="close">取 消</el-button>
+      </div>
+    </template>
+  </el-dialog>
 </template>
 <script setup>
-import { listForOutsource } from '@/api/business/daywork'
-const { proxy } = getCurrentInstance()
+import { listForOutsource } from "@/api/business/daywork";
+const { proxy } = getCurrentInstance();
 /** 字典数组区 */
-const { process_status } = proxy.useDict('process_status')
+const { process_status } = proxy.useDict("process_status");
 /** 工序变量 */
-const total = ref(0)
+const total = ref(0);
 const props = defineProps({
-	multipleSelected: {
-		type: Function,
-		default: null
-	},
-	supplierId: {
-		type: String,
-		default: ''
-	}
-})
+  multipleSelected: {
+    type: Function,
+    default: null,
+  },
+  supplierId: {
+    type: String,
+    default: "",
+  },
+});
 
-const { multipleSelected, supplierId } = toRefs(props)
-const productList = ref([])
-const visible = ref(false)
-const loading = ref(false)
+const { multipleSelected, supplierId } = toRefs(props);
+const productList = ref([]);
+const visible = ref(false);
+const loading = ref(false);
 const queryParams = ref({
-	existingDayworkIds: [],
-	deptCode: '170000',
-	// 是否看所有产品【0:看全部产品,1:只看该外协商配置的产品】
-	isSupplierProducts: 0,
-	supplierId: '',
-	productDescription: '',
-	pageNum: 1,
-	pageSize: 10
-})
-const selections = ref([])
+  existingDayworkIds: [],
+  deptCode: "170000",
+  // 是否看所有产品【0:看全部产品,1:只看该外协商配置的产品】
+  isSupplierProducts: 0,
+  supplierId: "",
+  productDescription: "",
+  pageNum: 1,
+  pageSize: 10,
+});
+const selections = ref([]);
 
 /**
  * 对话框打开 事件
  */
 function open(existingDayworkIds) {
-	visible.value = true
-	queryParams.value.existingDayworkIds = existingDayworkIds
-	getList()
+  visible.value = true;
+  queryParams.value.existingDayworkIds = existingDayworkIds;
+  getList();
 }
 
 /**
  * 对话框关闭 事件
  */
 function close() {
-	proxy.$refs.dialogForm.resetFields()
-	proxy.$refs.dialogTable.clearSelection()
-	queryParams.value.pageNum = 1
-	visible.value = false
+  proxy.$refs.dialogForm.resetFields();
+  proxy.$refs.dialogTable.clearSelection();
+  queryParams.value.pageNum = 1;
+  visible.value = false;
 }
-
 /**
  * 加载数据
  */
 function getList() {
-	loading.value = true
-	queryParams.value.supplierId = props.supplierId
-	listForOutsource(queryParams.value).then((res) => {
-		productList.value = res.rows
-		total.value = res.total
-		loading.value = false
-	})
+  loading.value = true;
+  queryParams.value.supplierId = props.supplierId;
+  listForOutsource(queryParams.value).then((res) => {
+    productList.value = res.rows;
+    console.log("productList", productList.value);
+    total.value = res.total;
+    loading.value = false;
+  });
 }
 
 /**
  * 列表checkbox列选择 事件
  */
 function handleSelectionChange(selection) {
-	selections.value = selection
+  selections.value = selection;
 }
 
 /**  搜索 事件 */
 function handleSearch() {
-	getList()
+  getList();
 }
 /** 多选事件 */
 function handleMultipleSelected() {
-	if (multipleSelected.value) {
-		multipleSelected.value(selections.value)
-	}
-	close()
+  if (multipleSelected.value) {
+    multipleSelected.value(selections.value);
+  }
+  close();
 }
 
 defineExpose({
-	open
-})
+  open,
+});
 </script>

+ 510 - 339
src/views/business/outsource/form.vue

@@ -1,396 +1,567 @@
 <template>
-	<el-drawer title="外协单信息" :with-header="false" v-model="visible" direction="rtl" size="100%">
-		<div class="form-container column-container">
-			<div class="form-btns-container">
-				<span class="title-label">
-					<el-icon><Document /></el-icon>
-					<span>外协单信息</span>
-				</span>
-				<el-button-group>
-					<el-button v-if="editStatus" type="primary" icon="Finished" @click="submitForm"> 保存 </el-button>
-					<el-button v-else type="warning" size="small" icon="Edit" @click="editStatus = true">编辑</el-button>
-					<el-button v-if="form.id && editStatus" type="info" size="small" icon="Close" @click="editStatus = false">
-						取消编辑
-					</el-button>
-					<el-button v-if="form.id" type="success" size="small" @click="getForm">
-						<i class="fa fa-refresh" aria-hidden="true" /> 刷新
-					</el-button>
-				</el-button-group>
+  <el-drawer
+    title="外协单信息"
+    :with-header="false"
+    v-model="visible"
+    direction="rtl"
+    size="100%"
+  >
+    <div class="form-container column-container">
+      <div class="form-btns-container">
+        <span class="title-label">
+          <el-icon><Document /></el-icon>
+          <span>外协单信息</span>
+        </span>
+        <el-button-group>
+          <el-button
+            v-if="editStatus"
+            type="primary"
+            icon="Finished"
+            @click="submitForm"
+          >
+            保存
+          </el-button>
+          <el-button
+            v-else
+            type="warning"
+            icon="Edit"
+            @click="editStatus = true"
+            >编辑</el-button
+          >
+          <el-button
+            v-if="form.id && editStatus"
+            type="info"
+            icon="Close"
+            @click="editStatus = false"
+          >
+            取消编辑
+          </el-button>
+          <el-button v-if="form.id" type="success" @click="getForm">
+            <i class="fa fa-refresh" aria-hidden="true" /> 刷新
+          </el-button>
+        </el-button-group>
 
-				<div class="close-btn" @click="cancel">
-					<i class="fa fa-times" aria-hidden="true" />
-					<!-- <span>关闭</span> -->
-				</div>
-			</div>
-			<el-form
-				ref="formRef"
-				class="master-container"
-				:model="form"
-				v-loading="loading"
-				:rules="rules"
-				label-width="120px"
-			>
-				<el-row :gutter="20">
-					<el-col :span="6">
-						<el-form-item label="单据号" prop="formCode">
-							<el-input v-if="editStatus" v-model="form.formCode" disabled placeholder="系统自动生成" />
-							<span v-else>{{ form.formCode }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="表单日期" prop="formDate">
-							<el-date-picker
-								v-if="editStatus"
-								clearable
-								v-model="form.formDate"
-								type="date"
-								value-format="YYYY-MM-DD"
-								placeholder="请选择表单日期"
-								style="width: 100%"
-							>
-							</el-date-picker>
-							<span v-else>{{ parseTime(form.formDate, '{y}-{m}-{d}') }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="外协商名称" prop="supplierName">
-							<el-input v-if="editStatus" v-model="form.supplierName" readonly placeholder="请输入外协商名称">
-								<template #append>
-									<el-button icon="Search" @click="handleShowDialogSuppliers" />
-								</template>
-							</el-input>
-							<span v-else>{{ form.supplierName }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="运费单价" prop="freightPrice">
-							<el-input-number
-								v-if="editStatus"
-								v-model="form.freightPrice"
-								:min="0"
-								:precision="2"
-								controls-position="right"
-							/>
-							<span v-else>{{ form.freightPrice }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="运费总价" prop="freightAmount">
-							<el-input-number
-								v-if="editStatus"
-								v-model="form.freightAmount"
-								:min="0"
-								:precision="2"
-								controls-position="right"
-							/>
-							<span v-else>{{ form.freightAmount }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="送货方式" prop="deliveryMethod">
-							<el-select v-if="editStatus" v-model="form.deliveryMethod" placeholder="请选择">
-								<el-option v-for="dict in deliveryMethod" :key="dict.value" :label="dict.label" :value="dict.value" />
-							</el-select>
-							<span v-else>{{ form.deliveryMethod }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="带箱方式" prop="packagingMethod">
-							<el-select v-if="editStatus" v-model="form.packagingMethod" placeholder="请选择">
-								<el-option v-for="dict in packagingMethod" :key="dict.value" :label="dict.label" :value="dict.value" />
-							</el-select>
-							<span v-else>{{ form.packagingMethod }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="结算方式" prop="settlementType">
-							<el-select v-if="editStatus" v-model="form.settlementType" disabled placeholder="请选择">
-								<el-option v-for="dict in settlementType" :key="dict.value" :label="dict.label" :value="dict.value" />
-							</el-select>
-							<span v-else>{{ form.settlementType }}</span>
-						</el-form-item>
-					</el-col>
-					<el-col :span="6">
-						<el-form-item label="备注" prop="remark">
-							<el-input v-if="editStatus" v-model="form.remark" placeholder="请输入备注" />
-							<span v-else>{{ form.remark }}</span>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<!-- 渲染数据区 -->
-			<div class="form-details-btns-container">
-				<el-button type="primary" icon="Plus" @click="handleShowDialogProducts" v-hasPermi="['business:outsource:add']">
-					添加外协产品明细
-				</el-button>
-			</div>
-			<div class="el-table-container">
-				<div class="el-table-inner-container">
-					<el-table v-loading="loading" :data="form.details" size="small" border height="100%">
-						<el-table-column label="行号" type="index" align="center" width="48" />
-						<el-table-column label="批次号" align="center" prop="lotCode" width="104" />
-						<el-table-column label="产品描述" align="center" prop="productDescription" width="320" />
-						<el-table-column
-							:label="form.packagingMethod === '0' ? '箱号' : '原箱号'"
-							align="center"
-							prop="originalCarrier"
-							width="320"
-						/>
-						<el-table-column
-							v-if="form.packagingMethod === '1'"
-							label="新箱号"
-							align="center"
-							prop="new_carrier"
-							width="320"
-						>
-							<template #default="scope">
-								<el-input v-if="editStatus" v-model="scope.row.newCarrier" readonly placeholder="请选择新箱号">
-									<template #append>
-										<el-button icon="Search" @click="handleShowDialogOutsourceCarriers" />
-									</template>
-								</el-input>
-								<span v-else>{{ scope.row.newCarrier }}</span>
-							</template>
-						</el-table-column>
-						<el-table-column label="外协工序" align="center" prop="processNames" width="320">
-							<template #default="scope">
-								<el-input v-if="editStatus" v-model="scope.row.processNames" readonly placeholder="请选择工序">
-									<template #append>
-										<el-button icon="Search" @click="handleShowDialogProcesses(scope.row)" />
-									</template>
-								</el-input>
-								<span v-else>{{ scope.row.processNames }}</span>
-							</template>
-						</el-table-column>
-						<el-table-column label="备注" align="center" prop="remark">
-							<template #default="scope">
-								<el-input v-if="editStatus" v-model="scope.row.remark" placeholder="备注" />
-								<span v-else>{{ scope.row.remark }}</span>
-							</template>
-						</el-table-column>
-						<el-table-column
-							v-if="editStatus"
-							label="操作"
-							align="center"
-							class-name="small-padding fixed-width"
-							width="64"
-						>
-							<template #default="scope">
-								<el-button
-									circle
-									type="danger"
-									icon="Delete"
-									@click="handleDelete(scope.$index)"
-									v-hasPermi="['business:outsource:remove']"
-								/>
-							</template>
-						</el-table-column>
-					</el-table>
-				</div>
-			</div>
-		</div>
-		<!-- 外协商选择 -->
-		<dialog-suppliers ref="dialogSuppliersRef" :single-selected="handleSingleSelectedSupplier" />
-		<!-- 产品选择 -->
-		<dialog-products
-			ref="dialogProductsRef"
-			:supplier-id="form.supplierId"
-			:multiple-selected="handleMultipleSelectedProducts"
-		/>
-		<!-- 工序选择 -->
-		<dialog-processes ref="dialogProcessesRef" :multiple-selected="handleMultipleSelectedProcesses" />
-	</el-drawer>
+        <div class="close-btn" @click="cancel">
+          <i class="fa fa-times" aria-hidden="true" />
+          <!-- <span>关闭</span> -->
+        </div>
+      </div>
+      <el-form
+        ref="formRef"
+        class="master-container"
+        :model="form"
+        v-loading="loading"
+        :rules="rules"
+        label-width="120px"
+      >
+        <el-row :gutter="20">
+          <el-col :span="6">
+            <el-form-item label="单据号" prop="formCode">
+              <el-input
+                v-if="editStatus"
+                v-model="form.formCode"
+                disabled
+                placeholder="系统自动生成"
+              />
+              <span v-else>{{ form.formCode }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="表单日期" prop="formDate">
+              <el-date-picker
+                v-if="editStatus"
+                clearable
+                v-model="form.formDate"
+                type="date"
+                value-format="YYYY-MM-DD"
+                placeholder="请选择表单日期"
+                style="width: 100%"
+              >
+              </el-date-picker>
+              <span v-else>{{ parseTime(form.formDate, "{y}-{m}-{d}") }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="外协商名称" prop="supplierName">
+              <el-input
+                v-if="editStatus"
+                v-model="form.supplierName"
+                readonly
+                placeholder="请输入外协商名称"
+              >
+                <template #append>
+                  <el-button icon="Search" @click="handleShowDialogSuppliers" />
+                </template>
+              </el-input>
+              <span v-else>{{ form.supplierName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="运费单价" prop="freightPrice">
+              <el-input-number
+                v-if="editStatus"
+                v-model="form.freightPrice"
+                :min="0"
+                :precision="2"
+                controls-position="right"
+              />
+              <span v-else>{{ form.freightPrice }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="运费总价" prop="freightAmount">
+              <el-input-number
+                v-if="editStatus"
+                v-model="form.freightAmount"
+                :min="0"
+                :precision="2"
+                controls-position="right"
+              />
+              <span v-else>{{ form.freightAmount }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="送货方式" prop="deliveryMethod">
+              <el-select
+                v-if="editStatus"
+                v-model="form.deliveryMethod"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="dict in deliveryMethod"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+              <span v-else>{{
+                selectText(form.deliveryMethod, deliveryMethod)
+              }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="带箱方式" prop="packagingMethod">
+              <el-select
+                v-if="editStatus"
+                v-model="form.packagingMethod"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="dict in packagingMethod"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+              <span v-else>{{
+                selectText(form.packagingMethod, packagingMethod)
+              }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="结算方式" prop="settlementType">
+              <el-select
+                v-if="editStatus"
+                v-model="form.settlementType"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="dict in settlementType"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+              <span v-else>{{
+                selectText(form.settlementType, settlementType)
+              }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-if="editStatus"
+                v-model="form.remark"
+                placeholder="请输入备注"
+              />
+              <span v-else>{{ form.remark }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <!-- 渲染数据区 -->
+      <div class="form-details-btns-container">
+        <el-button
+          v-if="editStatus"
+          type="primary"
+          icon="Plus"
+          @click="handleShowDialogProducts"
+          v-hasPermi="['business:outsource:add']"
+        >
+          添加外协产品明细
+        </el-button>
+      </div>
+      <div class="el-table-container">
+        <div class="el-table-inner-container">
+          <el-table
+            v-loading="loading"
+            :data="form.details"
+            size="small"
+            border
+            height="100%"
+          >
+            <el-table-column
+              label="行号"
+              type="index"
+              align="center"
+              width="48"
+            />
+            <el-table-column
+              label="批次号"
+              align="center"
+              prop="lotCode"
+              width="104"
+            />
+            <el-table-column
+              label="产品描述"
+              align="center"
+              prop="productDescription"
+              width="320"
+            />
+            <el-table-column
+              :label="form.packagingMethod === '0' ? '箱号' : '原箱号'"
+              align="center"
+              prop="originalCarrier"
+              width="320"
+            />
+            <el-table-column
+              v-if="form.packagingMethod === '1'"
+              label="新箱号"
+              align="center"
+              prop="newCarrier"
+              width="320"
+            >
+              <template #default="scope">
+                <el-input
+                  v-if="editStatus"
+                  v-model="scope.row.newCarrier"
+                  readonly
+                  placeholder="请选择新箱号"
+                >
+                  <template #append>
+                    <el-button
+                      icon="Search"
+                      @click="handleShowDialogOutsourceCarriers(scope.row)"
+                    />
+                  </template>
+                </el-input>
+                <span v-else>{{ scope.row.newCarrier }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="外协工序"
+              align="center"
+              prop="processNames"
+              width="320"
+            >
+              <template #default="scope">
+                <el-input
+                  v-if="editStatus"
+                  v-model="scope.row.processNames"
+                  readonly
+                  placeholder="请选择工序"
+                >
+                  <template #append>
+                    <el-button
+                      icon="Search"
+                      @click="handleShowDialogProcesses(scope.row)"
+                    />
+                  </template>
+                </el-input>
+                <span v-else>{{ selectProceseName(scope.row) }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" align="center" prop="remark">
+              <template #default="scope">
+                <el-input
+                  v-if="editStatus"
+                  v-model="scope.row.remark"
+                  placeholder="备注"
+                />
+                <span v-else>{{ scope.row.remark }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              v-if="editStatus"
+              label="操作"
+              align="center"
+              class-name="small-padding fixed-width"
+              width="64"
+            >
+              <template #default="scope">
+                <el-button
+                  circle
+                  type="danger"
+                  icon="Delete"
+                  @click="handleDelete(scope.$index)"
+                  v-hasPermi="['business:outsource:remove']"
+                />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <!-- 外协商选择 -->
+    <dialog-suppliers
+      ref="dialogSuppliersRef"
+      :single-selected="handleSingleSelectedSupplier"
+    />
+    <!-- 产品选择 -->
+    <dialog-products
+      ref="dialogProductsRef"
+      :supplier-id="form.supplierId"
+      :multiple-selected="handleMultipleSelectedProducts"
+    />
+    <!-- 工序选择 -->
+    <dialog-processes
+      ref="dialogProcessesRef"
+      :multiple-selected="handleMultipleSelectedProcesses"
+    />
+    <!-- 工序选择 -->
+    <dialog-carrier
+      ref="dialogCarrierRef"
+      :multiple-selected="handleMultipleSelectedOutsourceCarriers"
+    />
+  </el-drawer>
 </template>
 <script setup>
-import { getOrder, addOrder, updateOrder } from '@/api/business/outsourcedOrder'
-import dialogSuppliers from './DialogSuppliers'
-import dialogProducts from './DialogProducts'
-import dialogProcesses from './DialogProcesses'
-const { proxy } = getCurrentInstance()
+import {
+  getOrder,
+  addOrder,
+  updateOrder,
+} from "@/api/business/outsourcedOrder";
+import dialogCarrier from "./DialogCarrier";
+import dialogSuppliers from "./DialogSuppliers";
+import dialogProducts from "./DialogProducts";
+import dialogProcesses from "./DialogProcesses";
+const { proxy } = getCurrentInstance();
 /** 父组件传参 */
 const props = defineProps({
-	getList: {
-		type: Function,
-		default: () => {}
-	},
-	deliveryMethod: {
-		type: Array,
-		default: []
-	},
-	settlementType: {
-		type: Array,
-		default: []
-	},
-	packagingMethod: {
-		type: Array,
-		default: []
-	}
-})
-const { getList, deliveryMethod, packagingMethod, settlementType } = toRefs(props)
+  getList: {
+    type: Function,
+    default: () => {},
+  },
+  deliveryMethod: {
+    type: Array,
+    default: [],
+  },
+  settlementType: {
+    type: Array,
+    default: [],
+  },
+  packagingMethod: {
+    type: Array,
+    default: [],
+  },
+});
+const { getList, deliveryMethod, packagingMethod, settlementType } =
+  toRefs(props);
 /** 字典数组区 */
 /** 表单抽屉 页变量 */
 
-const loading = ref(false)
-const multiple = ref(true)
-const visible = ref(false)
-const editStatus = ref(false)
-const isFullscreen = ref(false)
-const webHost = import.meta.env.VITE_APP_BASE_API
-const form = ref({})
+const loading = ref(false);
+const multiple = ref(true);
+const visible = ref(false);
+const editStatus = ref(false);
+const isFullscreen = ref(false);
+const webHost = import.meta.env.VITE_APP_BASE_API;
+const form = ref({});
 // const formatDetails = ref([])
-const currentDetail = ref({})
+const currentDetail = ref({});
 const rules = {
-	supplierName: [{ required: true, message: '外协商名称不能为空', trigger: 'blur' }]
-}
+  supplierName: [
+    { required: true, message: "外协商名称不能为空", trigger: "blur" },
+  ],
+};
 
 /***********************  方法区  ****************************/
 /** 打开抽屉 */
 function open(id) {
-	reset()
-	visible.value = true
-	if (id) {
-		form.value.id = id
-		getForm()
-	} else {
-		editStatus.value = true
-	}
+  reset();
+  visible.value = true;
+  if (id) {
+    form.value.id = id;
+    getForm();
+  } else {
+    editStatus.value = true;
+  }
 }
 
 /** 查询表单信息  */
 function getForm() {
-	loading.value = true
-	getOrder(form.value.id).then((response) => {
-		loading.value = false
-		form.value = response.data
-	})
+  loading.value = true;
+  getOrder(form.value.id).then((response) => {
+    loading.value = false;
+    form.value = response.data;
+  });
+}
+
+/** 查询表单信息  */
+function selectProceseName(row) {
+  row.processNames = row.processes.map((item) => item.processAlias).join(",");
+  return row.processNames;
+}
+
+function selectText(value, data) {
+  if (value) {
+    return data.filter((item) => item.value == value)[0].label;
+  }
 }
 
 /** 取消按钮 */
 function cancel() {
-	visible.value = false
-	reset()
+  visible.value = false;
+  reset();
 }
 
 const handleDelete = (index) => {
-	form.value.details.splice(index, 1)
-}
+  form.value.details.splice(index, 1);
+};
 
 /** 表单重置 */
 function reset() {
-	form.value = {
-		id: null,
-		tenantId: null,
-		formCode: null,
-		formDate: proxy.parseTime(new Date(), '{y}-{m}-{d}'),
-		supplierId: '0',
-		supplierName: '',
-		deliveryMethod: '0',
-		freightPrice: 0.0,
-		freightAmount: 0.0,
-		packagingMethod: '0',
-		remark: null,
-		details: []
-	}
-	proxy.resetForm('formRef')
+  form.value = {
+    id: null,
+    tenantId: null,
+    formCode: null,
+    formDate: proxy.parseTime(new Date(), "{y}-{m}-{d}"),
+    supplierId: "0",
+    supplierName: "",
+    deliveryMethod: "0",
+    freightPrice: 0.0,
+    freightAmount: 0.0,
+    packagingMethod: "0",
+    remark: null,
+    details: [],
+  };
+  proxy.resetForm("formRef");
 }
 /** 提交按钮 */
 function submitForm() {
-	proxy.$refs['formRef'].validate((valid) => {
-		if (valid) {
-			if (form.value.id != null) {
-				updateOrder(form.value).then((response) => {
-					proxy.$modal.msgSuccess('修改成功')
-					visible.value = false
-					getList.value()
-				})
-			} else {
-				addOrder(form.value).then((response) => {
-					proxy.$modal.msgSuccess('新增成功')
-					visible.value = false
-					getList.value()
-				})
-			}
-		}
-	})
+  proxy.$refs["formRef"].validate((valid) => {
+    if (valid) {
+      if (form.value.id != null) {
+        updateOrder(form.value).then((response) => {
+          proxy.$modal.msgSuccess("修改成功");
+          visible.value = false;
+          getList.value();
+        });
+      } else {
+        console.log("提交", form.value);
+        addOrder(form.value).then((response) => {
+          if (response.code == 200) {
+            proxy.$modal.msgSuccess("新增成功");
+            visible.value = false;
+            getList.value();
+          }
+        });
+      }
+    }
+  });
 }
 /***************************** 外协商对话框相关 *****************************/
 // 打开外协商选择对话框
 const handleShowDialogSuppliers = () => {
-	proxy.$refs.dialogSuppliersRef.open()
-}
+  proxy.$refs.dialogSuppliersRef.open();
+};
 // 外协商选择带回
 const handleSingleSelectedSupplier = (data) => {
-	console.log(data)
-	form.value.supplierId = data.id
-	form.value.supplierName = data.name
-	form.value.deliveryMethod = data.deliveryMethod
-	form.value.settlementType = data.settlementType
-}
+  console.log(data);
+  form.value.supplierId = data.id;
+  form.value.supplierName = data.name;
+  form.value.deliveryMethod = data.deliveryMethod;
+  form.value.settlementType = data.settlementType;
+};
 
 /***************************** 产品对话框相关 *****************************/
 // 打开产品选择对话框
 const handleShowDialogProducts = () => {
-	const dayworkIds = form.value.details.map((item) => item.dayworkId)
-	console.log(dayworkIds)
-	proxy.$refs.dialogProductsRef.open(dayworkIds)
-}
+  const dayworkIds = form.value.details.map((item) => item.dayworkId);
+  console.log(dayworkIds);
+  proxy.$refs.dialogProductsRef.open(dayworkIds);
+};
 // 产品选择带回
 const handleMultipleSelectedProducts = (selection) => {
-	selection.forEach((item) => {
-		const newDetail = {
-			lotId: item.lotId,
-			lotCode: item.lotCode,
-			dayworkId: item.id,
-			productId: item.productId,
-			productDescription: item.productDescription,
-			technologicalProcessId: item.technologicalProcessId,
-			technologyVersion: item.technologyVersion,
-			originalCarrier: item.originalCarrier,
-			originalCarrierCount: item.originalCarrier.split(',').length,
-			newCarrier: '',
-			newCarrierCount: 0,
-			processNames: '',
-			remark: item.remark,
-			processes: []
-		}
-		console.log(newDetail)
-		form.value.details.push(newDetail)
-	})
-}
+  selection.forEach((item) => {
+    const newDetail = {
+      lotId: item.lotId,
+      lotCode: item.lotCode,
+      dayworkId: item.id,
+      productId: item.productId,
+      productDescription: item.productDescription,
+      technologicalProcessId: item.technologicalProcessId,
+      technologyVersion: item.technologyVersion,
+      originalCarrier: item.originalCarrier,
+      originalCarrierCount: item.originalCarrier.split(",").length,
+      productNum: item.productNum,
+      productCode: item.productCode,
+      newCarrier: "",
+      newCarrierCount: 0,
+      processNames: "",
+      remark: item.remark,
+      processes: [],
+    };
+    form.value.details.push(newDetail);
+    console.log("form.value.details", form.value.details);
+  });
+};
 
 /***************************** 外协箱子对话框相关 *****************************/
 // 打开外协箱子选择对话框
-const handleShowDialogOutsourceCarriers = () => {}
-// 产品选择带回
-const handleMultipleSelectedOutsourceCarriers = (selection) => {
-	selection.forEach((item) => {
-		const newDetail = {}
-		form.value.details.push(newDetail)
-	})
-}
+const handleShowDialogOutsourceCarriers = (row) => {
+  console.log("row", row);
+  proxy.$refs.dialogCarrierRef.open(row.lotId);
+};
+// 箱子选择带回
+const handleMultipleSelectedOutsourceCarriers = (selection, lotId) => {
+  console.log("selection", selection);
+  const carrierNames = selection.map((item) => item.code);
+  let carrierNamesString = carrierNames.join(",");
+  form.value.details.map((item) => {
+    if (item.lotId == lotId) {
+      item.newCarrier = carrierNamesString;
+      item.newCarrierCount = selection.length;
+    }
+  });
+};
 
 /***************************** 外协工序对话框相关 *****************************/
 // 打开外协工序选择对话框
 const handleShowDialogProcesses = (row) => {
-	currentDetail.value = row
-	proxy.$refs.dialogProcessesRef.open()
-}
+  currentDetail.value = row;
+  proxy.$refs.dialogProcessesRef.open(row);
+};
+
 // 工序选择带回
 const handleMultipleSelectedProcesses = (selection) => {
-	const processNames = selection.map((item) => item.processAlias)
-	currentDetail.value.processNames = processNames
-	selection.forEach((item) => {
-		const newProcess = {
-			processId: item.processId,
-			processAlias: item.processAlias,
-			processStepNumber: item.processStepNumber
-		}
-		currentDetail.value.processes.push(newProcess)
-	})
-}
+  const processNames = selection.map((item) => item.processAlias);
+  // 使用join方法将数组转换为以逗号分隔的字符串
+  let commaSeparatedString = processNames.join(",");
+  currentDetail.value.processNames = commaSeparatedString;
+  selection.forEach((item) => {
+    const newProcess = {
+      processId: item.processId,
+      processAlias: item.processAlias,
+      processStepNumber: item.processStepNumber,
+      technologicalProcessDetailId: item.id,
+    };
+    currentDetail.value.processes.push(newProcess);
+  });
+};
 
 /** 暴露给父组件的方法 */
 defineExpose({
-	open
-})
+  open,
+});
 </script>