Browse Source

fix(bugs): 修改商品过个问题

tangning 3 years ago
parent
commit
de69967e04

+ 1 - 1
src/views/product/drawer.data.ts

@@ -213,7 +213,7 @@ export const formSchema: FormSchema[] = [
   //   },
   // },
   {
-    field: 'desc',
+    field: 'goodsDesc',
     label: '商品描述',
     component: 'Input',
     render: ({ model, field }) => {

+ 54 - 42
src/views/product/goodsSpecs.vue

@@ -200,41 +200,56 @@
       });
       function initialize() {
         //初始化组装数据
+        let specsNumber = ggList.specsNumber;
         let goodsgg = [],
           setVlaue: {};
         console.log('ele', props.editdata, goodsgg);
         if (props.editdata.goodsSpecificationList) {
           let guigeArr = props.editdata.goodsSpecificationList;
-          guigeArr.map((ele, index) => {
-            console.log('ele', ele);
-            if (index == 0) {
-              // if (ele.val.length == 1) {
-              //不需要新增form item 可直接赋值
-              setVlaue = {
-                ...setVlaue,
-                name_1: ele.specificationId,
-                goodsSn_1_1: ele.goodsId,
-                picUrl_1_1: [ele.picUrl],
-              };
-              // } else {
-              //   //新增一个属性值item
-              //   setVlaue[`name_${index}`] = ele.specificationId;
-              //   for (var valIndex = 1; valIndex < ele.val.length; valIndex++) {
-              //     addBut(`add_${valIndex}`);
-              //     setVlaue[`goodsSn_${index}_${valIndex}`] = ele.val[valIndex].name;
-              //     // setVlaue[`picUrl_${index}_${valIndex}`] = ele.val[valIndex].picUrl;
-              //   }
-              // }
-            } else {
-              setVlaue[`name_${index}`] = ele.specificationId;
-              for (var valIndex = 1; valIndex < ele.val.length; valIndex++) {
-                addBut(`add_${valIndex}`);
-                setVlaue[`goodsSn_${index}_${valIndex}`] = ele.val[valIndex].name;
-                // setVlaue[`picUrl_${index}_${valIndex}`] = ele.val[valIndex].picUrl;
+          if (guigeArr.length > 1)
+            guigeArr.map((ele, index) => {
+              specsObj.value[ele.specificationId] = ele.specificationName;
+              if (index == 0) {
+                // if (ele.val.length == 1) {
+                //不需要新增form item 可直接赋值
+                setVlaue = {
+                  ...setVlaue,
+                  name_1: ele.specificationId,
+                  goodsSn_1_1: ele.goodsId,
+                  picUrl_1_1: [ele.picUrl],
+                };
+                // } else {
+                //   //新增一个属性值item
+                //   setVlaue[`name_${index}`] = ele.specificationId;
+                //   for (var valIndex = 1; valIndex < ele.val.length; valIndex++) {
+                //     addBut(`add_${valIndex}`);
+                //     setVlaue[`goodsSn_${index}_${valIndex}`] = ele.val[valIndex].name;
+                //     // setVlaue[`picUrl_${index}_${valIndex}`] = ele.val[valIndex].picUrl;
+                //   }
+                // }
+              } else {
+                specsNumber++;
+                ggList.specsNumber = specsNumber;
+                ggList.list[specsNumber] = {
+                  value: 1,
+                  list: [1],
+                };
+                setVlaue[`name_${specsNumber}`] = ele.specificationId;
+                setVlaue[`goodsSn_${specsNumber}_1`] = ele.goodsId;
+                // if(!ele.val) ele.val = []
+                let list = addSchemas(specsNumber, 1, true);
+
+                list.map((ele) => {
+                  appendSchemaByField(ele, '');
+                });
+                // for (var valIndex = 1; valIndex < ele.val.length; valIndex++) {
+                //   setVlaue[`goodsSn_${index}_${valIndex}`] = ele.val[valIndex].name;
+                //   // setVlaue[`picUrl_${index}_${valIndex}`] = ele.val[valIndex].picUrl;
+                // }
               }
-            }
-            setFieldsValue(setVlaue);
-          });
+              setFieldsValue(setVlaue);
+              ggList.goodsNumber = 1;
+            });
         } else {
           resetFields();
         }
@@ -334,32 +349,29 @@
       }
 
       async function handleSubmit() {
-        let data = await validate();
         let getData = await getFieldsValue();
         let goodsSpecificationList: EditDataType[] = [],
           productList: ProductListItem[] = [];
-        for (let index = 1; index < ggList.specsNumber + 1; index++) {
-          let ele = ggList.list[index];
-          let name = getData[`name_${index}`];
+        Object.keys(ggList.list).map((ele) => {
+          let item = ggList.list[ele];
+          let name = getData[`name_${ele}`];
           let val: valList[] = [];
-          ele.list.map((element) => {
+          item.list.map((element) => {
             val.push({
-              name: getData[`goodsSn_${index}_${element}`],
+              name: getData[`goodsSn_${ele}_${element}`],
               // picUrl: getData[`picUrl_${index}_${element}`][0],
-              uuid: `${index}-${element}`,
+              uuid: `${ele}-${element}`,
             });
             productList.push({
-              uuidLink: `${index}_${element}`,
+              uuidLink: `${ele}_${element}`,
             });
           });
-          console.log('ggList', data, val, specsObj.value);
-          let item = {
+          goodsSpecificationList.push({
             name: specsObj.value[name],
             specificationId: name,
             val,
-          };
-          goodsSpecificationList.push(item);
-        }
+          });
+        });
         emit('update', { goodsSpecificationList, productList });
         // createMessage.success('click search,values:' + JSON.stringify(values));
       }

+ 3 - 0
src/views/product/productDrawer.vue

@@ -218,6 +218,9 @@
             });
           }
         });
+        productList = productList.filter((ele) =>
+          value.productList.some((element) => element.uuidLink == ele.uuidLink),
+        );
         editData.value = {
           ...editData.value,
           ...value,

+ 45 - 7
src/views/staff/detailsModal.vue

@@ -13,7 +13,7 @@
 </template>
 <script lang="ts">
   import { defineComponent, ref } from 'vue';
-  import { roleLIstApi, checkUserApi, saveApi, updateApi } from '/@/api/staff/list';
+  import { checkUserApi, saveApi, updateApi } from '/@/api/staff/list';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { ListAllCompanyApi } from '/@/api/corporation/list';
@@ -133,16 +133,21 @@
         },
         {
           field: 'roleId',
-          component: 'ApiRadioGroup',
+          component: 'RadioGroup',
           label: '角色',
           required: true,
           itemProps: {
             validateTrigger: 'blur',
           },
+          defaultValue: 8,
           componentProps: {
-            api: roleLIstApi,
-            labelField: 'roleName',
-            valueField: 'roleId',
+            options: [
+              {
+                label: '公司员工',
+                value: 8,
+                key: 8,
+              },
+            ],
           },
         },
         // {
@@ -170,7 +175,7 @@
       ];
       const title = ref('新 增');
       const { createMessage } = useMessage();
-      const [registerForm, { setFieldsValue, validate, resetFields }] = useForm({
+      const [registerForm, { setFieldsValue, validate, updateSchema, resetFields }] = useForm({
         labelWidth: 120,
         schemas,
         showActionButtonGroup: false,
@@ -183,13 +188,46 @@
         data && onDataReceive(data);
       });
       function onDataReceive(data) {
-        console.log('onDataReceive', data);
         // 方式1;
         setFieldsValue({
           ...data,
         });
         if (data.id) {
           title.value = '编辑';
+          if (data.roleId === 2) {
+            updateSchema({
+              field: 'roleId',
+              componentProps: {
+                disabled: false,
+                options: [
+                  {
+                    label: '公司员工',
+                    value: 8,
+                    key: 8,
+                  },
+                ],
+              },
+            });
+          } else {
+            updateSchema({
+              field: 'roleId',
+              componentProps: {
+                disabled: true,
+                options: [
+                  {
+                    label: '公司员工',
+                    value: 8,
+                    key: 8,
+                  },
+                  {
+                    label: '公司管理员',
+                    value: 6,
+                    key: 6,
+                  },
+                ],
+              },
+            });
+          }
         }
       }