Просмотр исходного кода

Merge branch 'iteration-work' into jenkins

lex 1 год назад
Родитель
Сommit
7f38251200

+ 1 - 1
public/version.json

@@ -1 +1 @@
-{"version":1709546248219}
+{"version":1709626711057}

+ 5 - 0
src/components/pagination/index.tsx

@@ -40,6 +40,10 @@ export default defineComponent({
     checkedRowKeysRef: {
       type: Object
     },
+    disabled: {
+      type: Boolean,
+      default: false
+    },
     pageSizes: {
       type: Array as PropType<any>,
       default: () => [10, 20, 30, 40]
@@ -156,6 +160,7 @@ export default defineComponent({
 
     return () => (
       <NPagination
+        disabled={props.disabled}
         class={styles.pagination}
         v-model:page={props.page}
         displayOrder={['quick-jumper', 'pages', 'size-picker']}

+ 135 - 56
src/views/natural-resources/components/my-resources/index.tsx

@@ -8,7 +8,8 @@ import {
   materialQueryPage,
   materialRemove,
   materialRemoveAll,
-  materialRemoveMusic
+  materialRemoveMusic,
+  materialUpdateAll
 } from '../../api';
 import {
   NButton,
@@ -25,6 +26,7 @@ import resourceDefault from '../../images/resource-default.png';
 import resourceChecked from '../../images/resource-checked.png';
 import MyResourcesGuide from '@/custom-plugins/guide-page/myResources-guide';
 import SaveModal from './save-modal';
+import deepClone from '/src/helpers/deep-clone';
 export default defineComponent({
   name: 'share-resources',
   setup() {
@@ -53,6 +55,7 @@ export default defineComponent({
       editStatus: false, // 是否编辑
       editList: [] as any, // TOD
       editIds: [] as any, // 编辑的
+      editOverIds: [] as any, // 确认修改的数据
       removeVisiable: false,
       removeContent: '是否删除该资源?',
       type: 'remove',
@@ -126,10 +129,10 @@ export default defineComponent({
         } else {
           await materialRemoveAll(state.editIds);
         }
-        message.success('删除成功');
-        state.pagination.page = 1;
-        getList();
-        state.editIds = [];
+        // message.success('删除成功');
+        // state.pagination.page = 1;
+        // getList();
+        // state.editIds = [];
       } catch {
         //
       }
@@ -180,11 +183,55 @@ export default defineComponent({
             }
             state.uploadStatus = true;
           }}
-          onEdit={(status: boolean) => {
+          onEditOver={async (status: boolean) => {
+            state.editStatus = status;
+            try {
+              // 修改
+              if (state.editOverIds.length > 0) {
+                const body = [] as any;
+                state.tableList.forEach((item: any) => {
+                  if (state.editOverIds.includes(item.id)) {
+                    body.push({
+                      subjectIds: item.subjectId,
+                      openFlag: item.openFlag,
+                      coverImg: item.coverImg,
+                      name: item.title,
+                      type: item.type,
+                      enableFlag: 1,
+                      content: item.content,
+                      id: item.id || null,
+                      delFlag: item.delFlag
+                    });
+                  }
+                });
+                //
+                if (body.length > 0) {
+                  await materialUpdateAll(body);
+                }
+              }
+              message.success('修改成功');
+              state.pagination.page = 1;
+              getList();
+              state.editIds = [];
+              state.editOverIds = [];
+            } catch {
+              //
+            }
+          }}
+          onCancel={status => {
+            state.editStatus = status;
+            state.pagination.page = 1;
+            state.editIds = [];
+            state.editOverIds = [];
+            getList();
+          }}
+          onEdit={async (status: boolean) => {
             // 点击编辑
             state.editStatus = status;
+
             if (!state.editStatus) {
               state.editIds = [];
+              state.editOverIds = [];
             }
           }}
           onSelectAll={(status: boolean) => {
@@ -212,57 +259,60 @@ export default defineComponent({
 
         <NSpin v-model:show={state.loading} style={{ 'min-height': '50vh' }}>
           <div class={styles.list}>
-            {state.tableList.map((item: any) => (
-              <div class={styles.itemWrap}>
-                <div class={styles.itemWrapBox}>
-                  <CardType
-                    item={item}
-                    isDownload
-                    disabledMouseHover={false}
-                    offShelf={item.enableFlag ? false : true}
-                    onOffShelf={() => {
-                      state.type = 'remove';
-                      state.removeContent = '该资源已下架,是否删除?';
-                      state.removeVisiable = true;
-                      state.removeItem = item;
-                    }} // 下架
-                    onClick={(val: any) => {
-                      if (val.type === 'IMG' || !item.enableFlag) return;
-                      state.show = true;
-                      state.item = val;
-                    }}
-                    onCollect={(item: any) => onCollect(item)}
-                  />
-                  {/* 编辑模式 */}
-                  {state.editStatus && (
-                    <div
-                      class={[
-                        styles.itemBg,
-                        state.editIds.includes(item.id)
-                          ? styles.itemBgChecked
-                          : ''
-                      ]}
-                      onClick={() => {
-                        const index = state.editIds.indexOf(item.id);
-                        if (index > -1) {
-                          state.editIds.splice(index, 1);
-                        } else {
-                          state.editIds.push(item.id);
-                        }
-                      }}>
-                      <img
-                        src={
-                          state.editIds.includes(item.id)
-                            ? resourceChecked
-                            : resourceDefault
-                        }
-                        class={styles.resourceDefault}
+            {state.tableList.map(
+              (item: any) =>
+                item.delFlag !== 1 && (
+                  <div class={styles.itemWrap}>
+                    <div class={styles.itemWrapBox}>
+                      <CardType
+                        item={item}
+                        isDownload
+                        disabledMouseHover={false}
+                        offShelf={item.enableFlag ? false : true}
+                        onOffShelf={() => {
+                          state.type = 'remove';
+                          state.removeContent = '该资源已下架,是否删除?';
+                          state.removeVisiable = true;
+                          state.removeItem = item;
+                        }} // 下架
+                        onClick={(val: any) => {
+                          if (val.type === 'IMG' || !item.enableFlag) return;
+                          state.show = true;
+                          state.item = val;
+                        }}
+                        onCollect={(item: any) => onCollect(item)}
                       />
+                      {/* 编辑模式 */}
+                      {state.editStatus && (
+                        <div
+                          class={[
+                            styles.itemBg,
+                            state.editIds.includes(item.id)
+                              ? styles.itemBgChecked
+                              : ''
+                          ]}
+                          onClick={() => {
+                            const index = state.editIds.indexOf(item.id);
+                            if (index > -1) {
+                              state.editIds.splice(index, 1);
+                            } else {
+                              state.editIds.push(item.id);
+                            }
+                          }}>
+                          <img
+                            src={
+                              state.editIds.includes(item.id)
+                                ? resourceChecked
+                                : resourceDefault
+                            }
+                            class={styles.resourceDefault}
+                          />
+                        </div>
+                      )}
                     </div>
-                  )}
-                </div>
-              </div>
-            ))}
+                  </div>
+                )
+            )}
 
             {!state.loading && state.tableList.length <= 0 && (
               <TheEmpty style={{ minHeight: '50vh' }} description="暂无资源" />
@@ -271,6 +321,7 @@ export default defineComponent({
         </NSpin>
 
         <Pagination
+          disabled={state.editStatus}
           v-model:page={state.pagination.page}
           v-model:pageSize={state.pagination.rows}
           v-model:pageTotal={state.pageTotal}
@@ -295,11 +346,31 @@ export default defineComponent({
             onConfirm={() => {
               state.editIds = [];
               state.editList = [];
+              state.editOverIds = [];
               state.saveStatus = false;
               searchGroupResourcesRef.value?.resetStatus();
               onSearch(state.searchGroup);
             }}
             list={state.editList}
+            onEditAll={(list: any) => {
+              try {
+                state.tableList.forEach((table: any) => {
+                  const item = list.find((item: any) => item.id === table.id);
+                  if (item) {
+                    table.openFlag = item.openFlag;
+                    table.title = item.name;
+                    table.subjectId = item.subjectIds;
+
+                    if (!state.editOverIds.includes(table.id)) {
+                      state.editOverIds.push(table.id);
+                    }
+                  }
+                });
+                state.uploadStatus = false;
+              } catch (e: any) {
+                console.log(e);
+              }
+            }}
           />
         </NModal>
 
@@ -351,7 +422,15 @@ export default defineComponent({
                   if (state.type === 'remove') {
                     onRemove();
                   } else {
-                    onDelete();
+                    state.tableList.forEach((item: any) => {
+                      if (state.editIds.includes(item.id)) {
+                        item.delFlag = 1;
+
+                        if (!state.editOverIds.includes(item.id)) {
+                          state.editOverIds.push(item.id);
+                        }
+                      }
+                    });
                   }
                   state.removeVisiable = false;
                 }}>

+ 12 - 3
src/views/natural-resources/components/my-resources/search-group-resources.tsx

@@ -13,7 +13,16 @@ import { useCatchStore } from '/src/store/modules/catchData';
 
 export default defineComponent({
   name: 'search-group',
-  emits: ['search', 'upload', 'edit', 'selectAll', 'delete', 'update'],
+  emits: [
+    'search',
+    'upload',
+    'edit',
+    'selectAll',
+    'delete',
+    'update',
+    'editOver',
+    'cancel'
+  ],
   setup(props, { emit, expose }) {
     const resourceList = ref([] as any[]);
     const catchStore = useCatchStore();
@@ -145,7 +154,7 @@ export default defineComponent({
                   onClick={() => {
                     state.isEdit = false;
                     state.isSelectAll = false;
-                    emit('edit', state.isEdit);
+                    emit('editOver', state.isEdit);
                   }}>
                   完成编辑
                 </NButton>
@@ -157,7 +166,7 @@ export default defineComponent({
                   onClick={() => {
                     state.isEdit = false;
                     state.isSelectAll = false;
-                    emit('edit', state.isEdit);
+                    emit('cancel', state.isEdit);
                   }}>
                   {/* <img src={iconDelete} class={styles.iconDelete} /> */}
                   取消编辑

+ 9 - 7
src/views/natural-resources/components/my-resources/upload-modal/index.tsx

@@ -57,7 +57,7 @@ export default defineComponent({
       default: true
     }
   },
-  emits: ['close', 'confirm'],
+  emits: ['close', 'confirm', 'editAll'],
   setup(props, { emit }) {
     const catchStore = useCatchStore();
     const formRef = ref();
@@ -119,14 +119,16 @@ export default defineComponent({
             });
           });
           if (isUpdate.value) {
-            await materialUpdateAll(body);
+            // await materialUpdateAll(body);
+            emit('editAll', body);
+            uploadForms.list = [];
           } else {
             await materialSave(body);
+            message.success('保存成功');
+            uploadForms.list = [];
+            emit('close', true);
+            emit('confirm');
           }
-          uploadForms.list = [];
-          message.success('保存成功');
-          emit('close', true);
-          emit('confirm');
         } catch {
           //
         }
@@ -163,7 +165,7 @@ export default defineComponent({
       });
       uploadForms.list = temps || [];
 
-      console.log(temps, 'uploadForms');
+      // console.log(temps, 'uploadForms');
       await catchStore.getSubjects();
     });