Quellcode durchsuchen

退货管理, 销售合同, 报价单, 服务合同 选择商品产品方法整改

lxf vor 1 Jahr
Ursprung
Commit
25fa78b01d

+ 35 - 10
src/components/process/Contract.vue

@@ -127,11 +127,12 @@
               </template>
             </el-table-column>
             <el-table-column prop="code" label="商品编码" width="120" />
-            <el-table-column label="商品名称" min-width="200">
+            <el-table-column prop="name" label="商品中文名" width="160" />
+            <el-table-column label="商品英文名" min-width="200">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'contractProductList.' + $index + '.productName'" :rules="rules.productName" :inline-message="true">
-                    <el-input v-model="row.productName" placeholder="请输入商品名" />
+                    <el-input v-model="row.productName" placeholder="请输入商品英文名" />
                   </el-form-item>
                 </div>
               </template>
@@ -139,7 +140,6 @@
             <el-table-column label="规格型号" width="180">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <!-- :rules="rules.productModel" -->
                   <el-form-item :prop="'contractProductList.' + $index + '.productModel'" :inline-message="true">
                     <el-input v-model="row.productModel" placeholder="请输入规格型号" />
                   </el-form-item>
@@ -147,7 +147,7 @@
               </template>
             </el-table-column>
             <el-table-column prop="unit" label="单位" width="100" :formatter="(row) => dictValueLabel(row.unit, productUnit)" />
-            <el-table-column label="数量" width="160">
+            <el-table-column label="数量" width="150">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'contractProductList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
@@ -181,7 +181,7 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="amount" label="金额" width="140" />
+            <el-table-column prop="amount" label="金额" width="100" />
             <el-table-column align="center" label="操作" width="120" fixed="right">
               <template #default="{ row, $index }">
                 <el-button type="primary" link @click="handleHandover(row, $index)">交接单</el-button>
@@ -434,8 +434,8 @@
       </template>
     </byForm>
 
-    <el-dialog v-model="openProduct" title="选择商品" width="70%" append-to-body>
-      <SelectGoods @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
+    <el-dialog v-if="openProduct" v-model="openProduct" title="选择商品" width="70%" append-to-body>
+      <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
 
     <el-dialog title="交接单" v-if="openHandover" v-model="openHandover" width="800">
@@ -595,7 +595,7 @@ const rules = ref({
   buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
-  productName: [{ required: true, message: "请输入商品名", trigger: "blur" }],
+  productName: [{ required: true, message: "请输入商品英文名", trigger: "blur" }],
   productModel: [{ required: true, message: "请输入规格型号", trigger: "blur" }],
   quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
   price: [{ required: true, message: "请输入单价", trigger: "blur" }],
@@ -823,8 +823,20 @@ const handlePerson = (item) => {
 };
 const pushGoods = (goods) => {
   if (goods && goods.length > 0) {
+    let afterFiltering = [];
+    if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
+      afterFiltering = goods.filter((item) => {
+        let data = formData.data.contractProductList.filter((itemProduct) => itemProduct.productId === item.id);
+        if (data && data.length > 0) {
+          return false;
+        }
+        return true;
+      });
+    } else {
+      afterFiltering = goods;
+    }
     formData.data.contractProductList = formData.data.contractProductList.concat(
-      goods.map((item) => {
+      afterFiltering.map((item) => {
         let fileUrl = "";
         if (item.fileList && item.fileList.length > 0) {
           fileUrl = item.fileList[0].fileUrl;
@@ -840,6 +852,7 @@ const pushGoods = (goods) => {
           fileUrl: fileUrl,
           code: item.code,
           productId: item.id,
+          name: item.name,
           productName: name,
           productModel: item.spec,
           unit: item.unit,
@@ -852,7 +865,7 @@ const pushGoods = (goods) => {
       })
     );
     formData.data.contractShipmentList = formData.data.contractShipmentList.concat(
-      goods.map((item) => {
+      afterFiltering.map((item) => {
         let name = item.name;
         if (item.standardJson) {
           let standardJson = JSON.parse(item.standardJson);
@@ -1147,6 +1160,18 @@ watch(
     deep: true,
   }
 );
+const acquireSelectList = () => {
+  let data = [];
+  if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
+    data = formData.data.contractProductList.map((item) => {
+      return {
+        id: item.productId,
+        name: item.name,
+      };
+    });
+  }
+  return data;
+};
 </script>
 
 <style lang="scss" scoped>

+ 36 - 11
src/components/process/PriceSheet.vue

@@ -127,11 +127,12 @@
               </template>
             </el-table-column>
             <el-table-column prop="code" label="商品编码" width="120" />
-            <el-table-column label="商品名称" min-width="200">
+            <el-table-column prop="name" label="商品中文名" width="160" />
+            <el-table-column label="商品英文名" min-width="200">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'quotationProductList.' + $index + '.productName'" :rules="rules.productName" :inline-message="true">
-                    <el-input v-model="row.productName" placeholder="请输入商品名" />
+                    <el-input v-model="row.productName" placeholder="请输入商品英文名" />
                   </el-form-item>
                 </div>
               </template>
@@ -139,7 +140,6 @@
             <el-table-column label="规格型号" width="180">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <!-- :rules="rules.productModel" -->
                   <el-form-item :prop="'quotationProductList.' + $index + '.productModel'" :inline-message="true">
                     <el-input v-model="row.productModel" placeholder="请输入规格型号" />
                   </el-form-item>
@@ -147,7 +147,7 @@
               </template>
             </el-table-column>
             <el-table-column prop="unit" label="单位" width="100" />
-            <el-table-column label="数量" width="160">
+            <el-table-column label="数量" width="150">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'quotationProductList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
@@ -181,9 +181,9 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="amount" label="金额" width="140" />
-            <el-table-column label="操作" width="80" fixed="right">
-              <template #default="{ row, $index }">
+            <el-table-column prop="amount" label="金额" width="100" />
+            <el-table-column align="center" label="操作" width="80" fixed="right">
+              <template #default="{ $index }">
                 <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
               </template>
             </el-table-column>
@@ -339,8 +339,8 @@
       </template>
     </byForm>
 
-    <el-dialog v-model="openProduct" title="选择商品" width="70%" append-to-body>
-      <SelectGoods @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
+    <el-dialog v-if="openProduct" v-model="openProduct" title="选择商品" width="70%" append-to-body>
+      <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
   </div>
 </template>
@@ -448,7 +448,7 @@ const rules = ref({
   buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
-  productName: [{ required: true, message: "请输入商品名", trigger: "blur" }],
+  productName: [{ required: true, message: "请输入商品英文名", trigger: "blur" }],
   productModel: [{ required: true, message: "请输入规格型号", trigger: "blur" }],
   quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
   price: [{ required: true, message: "请输入单价", trigger: "blur" }],
@@ -649,8 +649,20 @@ const handlePerson = (item) => {
 };
 const pushGoods = (goods) => {
   if (goods && goods.length > 0) {
+    let afterFiltering = [];
+    if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
+      afterFiltering = goods.filter((item) => {
+        let data = formData.data.quotationProductList.filter((itemProduct) => itemProduct.productId === item.id);
+        if (data && data.length > 0) {
+          return false;
+        }
+        return true;
+      });
+    } else {
+      afterFiltering = goods;
+    }
     formData.data.quotationProductList = formData.data.quotationProductList.concat(
-      goods.map((item) => {
+      afterFiltering.map((item) => {
         let fileUrl = "";
         if (item.fileList && item.fileList.length > 0) {
           fileUrl = item.fileList[0].fileUrl;
@@ -659,6 +671,7 @@ const pushGoods = (goods) => {
           fileUrl: fileUrl,
           code: item.code,
           productId: item.id,
+          name: item.name,
           productName: item.name,
           productModel: item.spec,
           unit: item.unit,
@@ -846,6 +859,18 @@ defineExpose({
   getFormData,
   handleSubmit,
 });
+const acquireSelectList = () => {
+  let data = [];
+  if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
+    data = formData.data.quotationProductList.map((item) => {
+      return {
+        id: item.productId,
+        name: item.name,
+      };
+    });
+  }
+  return data;
+};
 </script>
 
 <style lang="scss" scoped>

+ 57 - 79
src/components/process/ReturnGood.vue

@@ -1,90 +1,46 @@
 <template>
   <div style="width: 100%; padding: 0px 15px">
-    <byForm
-      :formConfig="formConfig"
-      :formOption="formOption"
-      v-model="formData.data"
-      :rules="rules"
-      ref="formDom"
-    >
+    <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="formDom">
       <template #details>
         <div style="width: 100%">
-          <el-button
-            type="primary"
-            @click="openProduct = true"
-            style="margin-bottom: 10px"
-          >
-            添加物品
-          </el-button>
+          <el-button type="primary" @click="openProduct = true" style="margin-bottom: 10px"> 添加物品 </el-button>
           <el-table :data="formData.data.salesReturnDetailList">
             <el-table-column prop="productCode" label="货品编码" />
             <el-table-column prop="productName" label="货品名称" />
             <el-table-column prop="productSpec" label="规格型号" />
-            <el-table-column
-              prop="productUnit"
-              label="单位"
-              :formatter="(row) => dictValueLabel(row.productUnit, productUnit)"
-            />
+            <el-table-column prop="productUnit" label="单位" :formatter="(row) => dictValueLabel(row.productUnit, productUnit)" />
             <el-table-column prop="count" label="退货数量" min-width="150">
               <template #default="{ row, $index }">
-                <el-form-item
-                  :prop="'salesReturnDetailList.' + $index + '.count'"
-                  :rules="rules.count"
-                  :inline-message="true"
-                >
-                  <el-input-number
-                    onmousewheel="return false;"
-                    v-model="row.count"
-                    :precision="4"
-                    :controls="false"
-                    :min="0"
-                  />
+                <el-form-item :prop="'salesReturnDetailList.' + $index + '.count'" :rules="rules.count" :inline-message="true">
+                  <el-input-number onmousewheel="return false;" v-model="row.count" :precision="4" :controls="false" :min="0" />
                 </el-form-item>
               </template>
             </el-table-column>
             <el-table-column prop="remark" label="退货原因" min-width="150">
               <template #default="{ row, $index }">
-                <el-form-item
-                  :prop="'salesReturnDetailList.' + $index + '.remark'"
-                  :rules="rules.remark"
-                  :inline-message="true"
-                >
-                  <el-input
-                    v-model="row.remark"
-                    placeholder="请输入"
-                    type="textarea"
-                  />
+                <el-form-item :prop="'salesReturnDetailList.' + $index + '.remark'" :rules="rules.remark" :inline-message="true">
+                  <el-input v-model="row.remark" placeholder="请输入" type="textarea" />
                 </el-form-item>
               </template>
             </el-table-column>
             <el-table-column prop="zip" label="操作" width="100">
               <template #default="{ $index }">
-                <el-button type="primary" link @click="handleRemove($index)"
-                  >删除</el-button
-                >
+                <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
               </template>
             </el-table-column>
           </el-table>
         </div>
       </template>
     </byForm>
-    <el-dialog
-      v-model="openProduct"
-      title="选择货品"
-      width="70%"
-      append-to-body
-    >
-      <SelectGoods
-        @cancel="openProduct = false"
-        @pushGoods="pushGoods"
-      ></SelectGoods>
+    <el-dialog v-if="openProduct" v-model="openProduct" title="选择货品" width="70%" append-to-body>
+      <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
   </div>
 </template>
 
 <script setup>
 import byForm from "@/components/byForm/index";
-import { ElMessage, ElMessageBox } from "element-plus";
+import { ElMessage } from "element-plus";
 import SelectGoods from "@/components/product/SelectGoods";
 import useUserStore from "@/store/modules/user";
 const { proxy } = getCurrentInstance();
@@ -197,23 +153,38 @@ const handleRemove = (index) => {
   });
 };
 const pushGoods = (goods) => {
-  const arr = goods.map((x) => ({
-    goodType: x.goodType,
-    productCode: x.code,
-    productName: x.name,
-    productSpec: x.spec,
-    productUnit: x.unit,
-    count: 0,
-    bussinessId: x.id,
-    remark: "",
-  }));
-  formData.data.salesReturnDetailList =
-    formData.data.salesReturnDetailList.concat(arr);
-  openProduct.value = false;
-  return ElMessage({
-    message: "添加成功!",
-    type: "success",
-  });
+  if (goods && goods.length > 0) {
+    let afterFiltering = [];
+    if (formData.data.salesReturnDetailList && formData.data.salesReturnDetailList.length > 0) {
+      afterFiltering = goods.filter((item) => {
+        let data = formData.data.salesReturnDetailList.filter((itemProduct) => itemProduct.bussinessId === item.id);
+        if (data && data.length > 0) {
+          return false;
+        }
+        return true;
+      });
+    } else {
+      afterFiltering = goods;
+    }
+    const arr = afterFiltering.map((x) => ({
+      goodType: x.goodType,
+      productCode: x.code,
+      productName: x.name,
+      productSpec: x.spec,
+      productUnit: x.unit,
+      count: 0,
+      bussinessId: x.id,
+      remark: "",
+    }));
+    formData.data.salesReturnDetailList = formData.data.salesReturnDetailList.concat(arr);
+    openProduct.value = false;
+    return ElMessage({
+      message: "添加成功!",
+      type: "success",
+    });
+  } else {
+    ElMessage("请选择至少一件物品");
+  }
 };
 
 // 接收父组件的传值
@@ -233,9 +204,7 @@ onMounted(() => {
 
 const judgeStatus = () => {
   if (props.queryData.recordList && props.queryData.recordList.length > 0) {
-    let data = props.queryData.recordList.filter(
-      (item) => item.status === 2 && item.nodeType !== 1
-    );
+    let data = props.queryData.recordList.filter((item) => item.status === 2 && item.nodeType !== 1);
     if (data && data.length > 0) {
       return true;
     }
@@ -247,10 +216,7 @@ watch(
   props.queryData,
   () => {
     formOption.disabled = judgeStatus();
-    if (
-      props.queryData &&
-      (route.query.processType == 10 || route.query.processType == 20)
-    ) {
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
       for (const key in props.queryData) {
         formData.data[key] = props.queryData[key];
       }
@@ -280,6 +246,18 @@ defineExpose({
   getFormData,
   handleSubmit,
 });
+const acquireSelectList = () => {
+  let data = [];
+  if (formData.data.salesReturnDetailList && formData.data.salesReturnDetailList.length > 0) {
+    data = formData.data.salesReturnDetailList.map((item) => {
+      return {
+        id: item.bussinessId,
+        name: item.productName,
+      };
+    });
+  }
+  return data;
+};
 </script>
 
 <style lang="scss" scoped></style>

+ 42 - 9
src/components/process/ServiceContract.vue

@@ -135,11 +135,12 @@
               </template>
             </el-table-column>
             <el-table-column prop="code" label="商品编码" width="120" />
-            <el-table-column label="商品名称" min-width="200">
+            <el-table-column prop="name" label="商品中文名" width="160" />
+            <el-table-column label="商品英文名" min-width="200">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'serviceContractProductList.' + $index + '.productName'" :rules="rules.productName" :inline-message="true">
-                    <el-input v-model="row.productName" placeholder="请输入商品名" />
+                    <el-input v-model="row.productName" placeholder="请输入商品英文名" />
                   </el-form-item>
                 </div>
               </template>
@@ -154,7 +155,7 @@
               </template>
             </el-table-column>
             <el-table-column prop="unit" label="单位" width="100" />
-            <el-table-column label="数量" width="160">
+            <el-table-column label="数量" width="150">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <el-form-item :prop="'serviceContractProductList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
@@ -188,7 +189,7 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column prop="amount" label="金额" width="140" />
+            <el-table-column prop="amount" label="金额" width="100" />
             <el-table-column align="center" label="操作" width="120" fixed="right">
               <template #default="{ row, $index }">
                 <el-button type="primary" link @click="handleHandover(row, $index)">交接单</el-button>
@@ -294,8 +295,8 @@
       </template>
     </byForm>
 
-    <el-dialog v-model="openProduct" title="选择商品" width="70%" append-to-body>
-      <SelectGoods @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
+    <el-dialog v-if="openProduct" v-model="openProduct" title="选择商品" width="70%" append-to-body>
+      <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
 
     <el-dialog title="交接单" v-if="openHandover" v-model="openHandover" width="800">
@@ -436,7 +437,7 @@ const rules = ref({
   buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
-  productName: [{ required: true, message: "请输入商品名", trigger: "blur" }],
+  productName: [{ required: true, message: "请输入商品英文名", trigger: "blur" }],
   productModel: [{ required: true, message: "请输入规格型号", trigger: "blur" }],
   quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
   price: [{ required: true, message: "请输入单价", trigger: "blur" }],
@@ -632,17 +633,37 @@ const handlePerson = (item) => {
 };
 const pushGoods = (goods) => {
   if (goods && goods.length > 0) {
+    let afterFiltering = [];
+    if (formData.data.serviceContractProductList && formData.data.serviceContractProductList.length > 0) {
+      afterFiltering = goods.filter((item) => {
+        let data = formData.data.serviceContractProductList.filter((itemProduct) => itemProduct.productId === item.id);
+        if (data && data.length > 0) {
+          return false;
+        }
+        return true;
+      });
+    } else {
+      afterFiltering = goods;
+    }
     formData.data.serviceContractProductList = formData.data.serviceContractProductList.concat(
-      goods.map((item) => {
+      afterFiltering.map((item) => {
         let fileUrl = "";
         if (item.fileList && item.fileList.length > 0) {
           fileUrl = item.fileList[0].fileUrl;
         }
+        let name = item.name;
+        if (item.standardJson) {
+          let standardJson = JSON.parse(item.standardJson);
+          if (standardJson && standardJson.englishName) {
+            name = standardJson.englishName;
+          }
+        }
         return {
           fileUrl: fileUrl,
           code: item.code,
           productId: item.id,
-          productName: item.name,
+          name: item.name,
+          productName: name,
           productModel: item.spec,
           unit: item.unit,
           quantity: undefined,
@@ -896,6 +917,18 @@ watch(
     deep: true,
   }
 );
+const acquireSelectList = () => {
+  let data = [];
+  if (formData.data.serviceContractProductList && formData.data.serviceContractProductList.length > 0) {
+    data = formData.data.serviceContractProductList.map((item) => {
+      return {
+        id: item.productId,
+        name: item.name,
+      };
+    });
+  }
+  return data;
+};
 </script>
 
 <style lang="scss" scoped>

+ 39 - 202
src/components/product/SelectGoods.vue

@@ -8,46 +8,30 @@
       :loading="loading"
       highlight-current-row
       :selectConfig="selectConfig"
-      :table-events="{
-        //element talbe事件都能传
-        select: select,
-      }"
       :action-list="[]"
-      @get-list="getList"
-    >
+      @get-list="getList">
     </byTable>
     <div>
       <div>已选择货品</div>
       <div style="margin: 10px 0px">
-        <el-tag
-          style="margin-right: 10px"
-          type="info"
-          closable
-          v-for="(good, index) in goodList"
-          :key="good.id"
-          @close="handleRemove(index)"
-          >{{ good.name }}</el-tag
-        >
+        <el-tag style="margin-right: 10px" type="info" closable v-for="(good, index) in goodList" :key="good.id" @close="handleRemove(index)">
+          {{ good.name }}
+        </el-tag>
       </div>
       <div style="text-align: center">
-        <el-button @click="handleCancel" size="large">取消</el-button>
-        <el-button type="primary" @click="handleSubmit" size="large">
-          确 定
-        </el-button>
+        <el-button @click="handleCancel" size="large">取 消</el-button>
+        <el-button type="primary" @click="handleSubmit" size="large">确 定</el-button>
       </div>
     </div>
   </div>
 </template>
-  
+
 <script setup>
-/* eslint-disable vue/no-unused-components */
-import { ElMessage, ElMessageBox } from "element-plus";
+import { ElMessage } from "element-plus";
 import byTable from "@/components/byTable/index";
-import byForm from "@/components/byForm/index";
-import treeList from "@/components/product/treeList";
-import { computed, defineComponent, ref, watch } from "vue";
+import { computed, ref } from "vue";
+
 const loading = ref(false);
-const submitLoading = ref(false);
 const sourceList = ref({
   data: [],
   pagination: {
@@ -60,24 +44,12 @@ const sourceList = ref({
     definition: "1",
   },
 });
-let dialogVisible = ref(false);
-let openExcelDialog = ref(false);
-
-let modalType = ref("add");
-let rules = ref({
-  productClassifyId: [
-    { required: true, message: "请选择产品分类", trigger: "change" },
-  ],
-  type: [{ required: true, message: "请选择产品类型", trigger: "change" }],
-  name: [{ required: true, message: "请输入产品名称", trigger: "blur" }],
-  unit: [{ required: true, message: "请选择单位", trigger: "change" }],
-});
 const { proxy } = getCurrentInstance();
 const selectConfig = reactive([
   {
     label: "物品类型",
     prop: "definition",
-    isShowAll: false, //不显示全部搜索
+    isShowAll: false,
     data: [
       {
         label: "产品",
@@ -89,11 +61,6 @@ const selectConfig = reactive([
       },
     ],
   },
-  {
-    label: "所属分类",
-    prop: "productClassifyId",
-    data: [],
-  },
 ]);
 const config = computed(() => {
   return [
@@ -147,7 +114,6 @@ const config = computed(() => {
         align: "center",
         fixed: "right",
       },
-      // 渲染 el-button,一般用在最后一列。
       renderHTML(row) {
         return [
           {
@@ -166,145 +132,40 @@ const config = computed(() => {
     },
   ];
 });
-
-let formData = reactive({
-  data: {},
-});
-const formOption = reactive({
-  inline: true,
-  labelWidth: 100,
-  itemWidth: 100,
-  rules: [],
-});
-const byform = ref(null);
-const treeListData = ref([]);
-const formConfig = computed(() => {
-  return [
-    {
-      type: "treeSelect",
-      prop: "productClassifyId",
-      label: "产品分类",
-      data: [],
-    },
-    {
-      type: "select",
-      prop: "type",
-      label: "产品类型",
-      required: true,
-      data: [
-        {
-          label: "成品",
-          id: "1",
-        },
-        {
-          label: "半成品",
-          id: "2",
-        },
-      ],
-    },
-    {
-      type: "input",
-      prop: "name",
-      label: "产品名称",
-    },
-    {
-      type: "input",
-      prop: "spec",
-      label: "规格型号",
-    },
-    {
-      type: "select",
-      prop: "unit",
-      label: "单位",
-      required: true,
-      data: [
-        {
-          label: "个",
-          id: "个",
-        },
-        {
-          label: "双",
-          id: "双",
-        },
-      ],
-    },
-    {
-      type: "slot",
-      slotName: "productPic",
-      prop: "fileList",
-      label: "产品图片",
-    },
-    {
-      type: "input",
-      prop: "remark",
-      label: "备注",
-      itemType: "textarea",
-    },
-  ];
-});
-
-const lastDefinition = ref("");
+const table = ref(null);
+const productUnit = ref([]);
+const getDict = () => {
+  proxy.getDictOne(["unit"]).then((res) => {
+    productUnit.value = res["unit"].map((x) => ({
+      label: x.dictValue,
+      value: x.dictKey,
+    }));
+  });
+};
+getDict();
 const getList = async (req = {}) => {
-  for (const key in req) {
-    sourceList.value.pagination[key] = req[key];
-    if (key === "definition") {
-      if (lastDefinition.value !== req[key]) {
-        getTreeList();
-        lastDefinition.value = req[key];
-        // 如果选择的物品分类不一致,则分类默认选中全部
-        return table.value.searchItemSelct("all", selectConfig[1]);
-      }
-    }
-  }
   sourceList.value.pagination = {
     ...sourceList.value.pagination,
     ...req,
   };
   loading.value = true;
-  proxy
-    .post("/productInfo/page", sourceList.value.pagination)
-    .then((message) => {
-      sourceList.value.data = message.rows.map((x) => ({ ...x, fileList: [] }));
-      sourceList.value.pagination.total = message.total;
-      setTimeout(() => {
-        loading.value = false;
-      }, 200);
-
-      const productIdList = message.rows.map((x) => x.id);
-      // 请求文件数据并回显
-      if (productIdList.length > 0) {
-        proxy
-          .post("/fileInfo/getList", { businessIdList: productIdList })
-          .then((fileObj) => {
-            for (let i = 0; i < sourceList.value.data.length; i++) {
-              const e = sourceList.value.data[i];
-              for (const key in fileObj) {
-                if (e.id === key) {
-                  e.fileList = fileObj[key];
-                }
-              }
-            }
-          });
-      }
-    });
-};
-
-const getTreeList = () => {
-  proxy
-    .post("/productClassify/tree", {
-      parentId: "",
-      name: "",
-      definition: sourceList.value.pagination.definition,
-    })
-    .then((message) => {
-      selectConfig[1].data = message.map((x) => ({
-        label: x.label,
-        value: x.id,
-      }));
-    });
+  proxy.post("/productInfo/page", sourceList.value.pagination).then((message) => {
+    sourceList.value.data = message.rows.map((x) => ({ ...x, fileList: [] }));
+    sourceList.value.pagination.total = message.total;
+    setTimeout(() => {
+      loading.value = false;
+    }, 200);
+  });
 };
-
+getList();
+// 接收父组件的传值
+const props = defineProps({
+  selectList: Array,
+});
 const goodList = ref([]);
+onMounted(() => {
+  goodList.value = proxy.deepClone(props.selectList);
+});
 const handleSelect = (row) => {
   const flag = goodList.value.some((x) => x.id === row.id);
   if (flag)
@@ -321,7 +182,6 @@ const handleSelect = (row) => {
     type: "success",
   });
 };
-
 const handleRemove = (index) => {
   goodList.value.splice(index, 1);
   return ElMessage({
@@ -329,7 +189,6 @@ const handleRemove = (index) => {
     type: "success",
   });
 };
-
 const handleSubmit = () => {
   if (!goodList.value.length > 0)
     return ElMessage({
@@ -339,34 +198,12 @@ const handleSubmit = () => {
   proxy.$emit("pushGoods", goodList.value);
   goodList.value = [];
 };
-
 const handleCancel = () => {
   goodList.value = [];
   proxy.$emit("cancel");
 };
-
-const table = ref(null);
-
-const searchItemSelct = () => {
-  // 默认选中的方法
-  table.value.searchItemSelct(selectConfig[0].data[0], selectConfig[0]);
-};
-const productUnit = ref([]);
-const getDict = () => {
-  proxy.getDictOne(["unit"]).then((res) => {
-    productUnit.value = res["unit"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-  });
-};
-getDict();
-
-onMounted(() => {
-  searchItemSelct();
-});
 </script>
-  
+
 <style lang="scss" scoped>
 .user {
   padding: 20px;
@@ -386,4 +223,4 @@ onMounted(() => {
   cursor: pointer;
   vertical-align: middle;
 }
-</style>
+</style>