tangning 3 лет назад
Родитель
Сommit
76ddfdbd82

+ 2 - 1
src/api/product/model.ts

@@ -9,9 +9,10 @@ export interface addCategoryParams {
   isShow: string;
   level: 'L1' | 'L2';
   name: string;
-  type: number;
+  type?: number;
   parentId?: string;
   wapBannerUrl?: string;
+  sortOrder?: number;
 }
 export interface OrderListItem {
   id: number;

+ 8 - 9
src/views/advertisement/schemas.ts

@@ -101,15 +101,14 @@ export const schemas: FormSchema[] = [
     },
     required: true,
   },
-  {
-    field: 'url',
-    component: 'Input',
-    label: '链接',
-    componentProps: {
-      placeholder: '链接',
-    },
-    // required: true,
-  },
+  // {
+  //   field: 'url',
+  //   component: 'Input',
+  //   label: '链接',
+  //   componentProps: {
+  //     placeholder: '链接',
+  //   },
+  // },
   {
     field: 'image',
     component: 'Upload',

+ 3 - 1
src/views/corporation/deviceModal.vue

@@ -226,6 +226,7 @@
           ...data.record,
           subNum: 0,
         });
+        deviceMapping();
       }
 
       // function numOnChange(data) {
@@ -292,8 +293,8 @@
         // numOnChange(0);
         await setFieldsValue({
           subNum: 0,
+          deviceNumber: 0,
         });
-        deviceMapping();
       }
 
       function setMappingDevice(devices: number, start = 0): FormSchema[] {
@@ -329,6 +330,7 @@
       async function deviceMapping() {
         const values = getFieldsValue();
         const devices: number = clamp(values.deviceNumber, 0, 20);
+        console.log('deviceNumber', devices);
         const currentLength = unref(modelRef).mappingLength;
 
         const rest = devices - currentLength;

+ 2 - 2
src/views/product/addCategoryModal.vue

@@ -95,7 +95,7 @@ wapBannerUrl: "https://4dkk.4dage.com/shop/huafa/20220302/23135195983e96.png?x-o
       },
     },
     {
-      field: 'type',
+      field: 'sortOrder',
       component: 'InputNumber',
       label: '排序',
       defaultValue: 1,
@@ -161,7 +161,7 @@ wapBannerUrl: "https://4dkk.4dage.com/shop/huafa/20220302/23135195983e96.png?x-o
               isShow: data.isShow,
               name: data.name,
               parentId: data.parentId,
-              type: data.type,
+              sortOrder: data.sortOrder,
               // wapBannerUrl: data.wapBannerUrl[0] || '',
             });
             emit('update');

+ 7 - 7
src/views/product/category.vue

@@ -70,7 +70,7 @@
         },
         {
           title: '排序',
-          dataIndex: 'orderNo',
+          dataIndex: 'sortOrder',
           width: 50,
         },
         {
@@ -86,15 +86,15 @@
             const status = record.isShow;
             const enable = status === 1;
             const color = enable ? 'green' : 'red';
-            const text = enable ? '启用' : '停用';
+            const text = enable ? '显示' : '不显示';
             return h(Tag, { color: color }, () => text);
           },
         },
-        {
-          title: '创建时间',
-          dataIndex: 'createTime',
-          width: 180,
-        },
+        // {
+        //   title: '创建时间',
+        //   dataIndex: 'createTime',
+        //   width: 180,
+        // },
       ];
       const [registeraddCategoryModal, { openModal: openAddCategoryModal }] = useModal();
       const [registerEditCategoryModal, { openModal: openEditategoryModal }] = useModal();

+ 18 - 11
src/views/product/drawer.data.ts

@@ -94,7 +94,7 @@ export const formSchema: FormSchema[] = [
             }
             const reg =
               /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
-            if (reg.test(value)) {
+            if (reg.test(value) && value.includes('.jd.')) {
               resolve();
             } else {
               reject('不是京东链接!!');
@@ -121,23 +121,30 @@ export const formSchema: FormSchema[] = [
           console.log('validator', value);
           return new Promise((resolve, reject) => {
             if (!value) {
-              return resolve();
+              reject('请选生成规格明细!!');
             }
             const check =
               value &&
-              value.map((ele) => {
+              value.every((ele) => {
                 const { goodsNumber, goodsSn, marketPrice, retailPrice } = ele;
-                if (
-                  goodsNumber != undefined &&
-                  retailPrice != undefined &&
-                  goodsSn != undefined &&
-                  marketPrice != undefined
-                ) {
-                  return true;
-                } else {
+                try {
+                  if (goodsNumber >= 0 && retailPrice >= 0 && goodsSn && marketPrice >= 0) {
+                    if (
+                      goodsNumber.toString().length > 0 &&
+                      retailPrice.toString().length > 0 &&
+                      marketPrice.toString().length > 0
+                    ) {
+                      return true;
+                    }
+                    return false;
+                  } else {
+                    return false;
+                  }
+                } catch (error) {
                   return false;
                 }
               });
+            console.log('product', value, check);
             if (check) {
               resolve();
             } else {

+ 2 - 2
src/views/product/editCategoryModal.vue

@@ -103,7 +103,7 @@ wapBannerUrl: "https://4dkk.4dage.com/shop/huafa/20220302/23135195983e96.png?x-o
       },
     },
     {
-      field: 'type',
+      field: 'sortOrder',
       component: 'InputNumber',
       label: '排序',
       defaultValue: 1,
@@ -179,7 +179,7 @@ wapBannerUrl: "https://4dkk.4dage.com/shop/huafa/20220302/23135195983e96.png?x-o
               isShow: data.isShow,
               name: data.name,
               parentId: data.parentId,
-              type: data.type,
+              sortOrder: data.sortOrder,
               wapBannerUrl: data.wapBannerUrl[0] || '',
             });
             emit('update');

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

@@ -133,6 +133,7 @@
       async function handleDelete(ids: string[]) {
         await DeleteApi(ids);
         nextTick(reload);
+        createMessage.success(t('common.optSuccess'));
       }
       function handleSingleDelete(id: string) {
         handleDelete([id]);
@@ -156,6 +157,7 @@
           }
           await EnSaleApi(keys);
           nextTick(reload);
+          createMessage.success(t('common.optSuccess'));
         } catch (error) {
           nextTick(reload);
         }
@@ -170,6 +172,7 @@
           }
           await UnSaleApi(keys);
           nextTick(reload);
+          createMessage.success(t('common.optSuccess'));
         } catch (error) {
           nextTick(reload);
         }

+ 1 - 1
src/views/product/productDrawer.vue

@@ -207,7 +207,7 @@
           ...value,
         };
         setFieldsValue({
-          productList: value.goodsSpecificationList,
+          productList: value.productList,
         });
         console.log('setEditData', value);
       }

+ 3 - 2
src/views/product/ref.vue

@@ -65,8 +65,8 @@
           dataIndex: 'sortOrder',
           editComponent: 'InputNumber',
           editRule: async (text) => {
-            if (!text) {
-              return '请输入排序';
+            if (text == null || text < 0) {
+              return '请输入正确排序';
             }
             return '';
           },
@@ -147,6 +147,7 @@
         // 校验
         msg.loading({ content: '正在保存...', duration: 0, key: 'saving' });
         const valid = await record.onValid?.();
+        console.log('ref', valid);
         if (valid) {
           try {
             const data = cloneDeep(record.editValueRefs);

+ 33 - 44
src/views/scenes/bindModal.vue

@@ -130,7 +130,7 @@
         registerTable,
         {
           reload,
-          getSelectRows,
+          // getSelectRows,
           getSelectRowKeys,
           clearSelectedRowKeys,
           setSelectedRowKeys,
@@ -145,28 +145,19 @@
         showTableSetting: false,
         tableSetting: { fullScreen: true },
         showIndexColumn: false,
-        immediate: false,
+        immediate: true,
         isCanResizeParent: true,
         rowKey: 'id',
         pagination: false,
         clickToRowSelect: false,
         bordered: true,
         afterFetch: (data) => {
-          console.log('data', data);
-          const res = data.map((i) => {
-            i.canShow = i.canShow === 1 ? true : false;
-            return i;
-          });
-          console.log('res', res);
-
-          const bindIds = data
-            .filter((i) => i.isBind === 1)
-            .reduce((pre, current) => {
-              return pre.concat(current['id']);
-            }, []);
-          console.log('bindIds', bindIds);
+          let bindIds = [];
           data.map((i) => {
-            i.canShow === 1 ? true : false;
+            i.canShow = i.canShow === 1 ? true : false;
+            if (i.isBind === 1) {
+              bindIds.push(i.id);
+            }
             return i;
           });
           setSelectedRowKeys(bindIds);
@@ -190,36 +181,34 @@
       }
       const handleSubmit = async () => {
         try {
-          const rows = getSelectRows();
+          const rows = getSelectRowKeys();
           const rawData = getRawDataSource();
           let paramsRow: bindAnchorListParam[];
-          console.log('rows', rows);
-          if (rows?.length > 0) {
-            paramsRow = rows.map((row) => {
-              return {
-                brandId: String(searchInfo.brandId),
-                canShow: row.canShow ? 1 : 0,
-                type: 1,
-                userId: String(row.id),
-              } as bindAnchorListParam;
-            });
-            await bindUserApi(paramsRow);
-            createMessage.success(t('common.optSuccess'));
-          } else {
-            const unBindUser = rawData.list
-              .filter((i) => i.isBind === 1)
-              .map((item) => {
-                let param: bindAnchorListParam = {};
-                param.canShow = item.canShow ? 1 : 0;
-                param.type = -1;
-                param.brandId = searchInfo.brandId;
-                param.userId = String(item.id);
-                return param;
-              });
-            console.log('unBindUser', unBindUser);
-            await bindUserApi(unBindUser);
-            createMessage.success(t('common.optSuccess'));
-          }
+          console.log('rawData', rawData, 'rows', rows, rows?.length);
+          // if (rows?.length > 0) {
+          //   paramsRow = rows.map((row) => {
+          //     return {
+          //       brandId: String(searchInfo.brandId),
+          //       canShow: row.canShow ? 1 : 0,
+          //       type: 1,
+          //       userId: String(row.id),
+          //     } as bindAnchorListParam;
+          //   });
+          //   await bindUserApi(paramsRow);
+          //   createMessage.success(t('common.optSuccess'));
+          // } else {
+          paramsRow = rawData.list.map((item) => {
+            let param: bindAnchorListParam = {};
+            param.canShow = item.canShow ? 1 : 0;
+            param.type = rows.includes(item.id) ? 1 : -1;
+            param.brandId = searchInfo.brandId;
+            param.userId = String(item.id);
+            return param;
+          });
+          console.log('paramsRow', paramsRow);
+          await bindUserApi(paramsRow);
+          createMessage.success(t('common.optSuccess'));
+          // }
           closeModal();
           emit('success');
           clearSelectedRowKeys();