wangwei преди 3 години
родител
ревизия
5b88477332

+ 5 - 9
src/views/event/activity/customCom/popup.vue

@@ -14,7 +14,7 @@
   import Member from './member/index.vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { defineComponent, reactive, toRefs, onUpdated } from 'vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
+  // import { useMessage } from '/@/hooks/web/useMessage';
 
   export default defineComponent({
     components: { BasicModal, Member },
@@ -24,8 +24,8 @@
         title: '',
         data: { id: 0 },
       });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
+      // const { createMessage } = useMessage();
+      // const { error } = createMessage;
       const [register, { closeModal }] = useModalInner((data) => {
         state.title = data;
       });
@@ -34,12 +34,8 @@
         state.data = data;
       }
       function sendRecord() {
-        if (state.data.id !== 0) {
-          emit('select', state.data);
-          closeModal();
-        } else {
-          error('请先选择要添加的数据!');
-        }
+        emit('select', state.data);
+        closeModal();
       }
       onUpdated(() => {
         document.onkeydown = function (e) {

+ 6 - 0
src/views/event/activity/popup.vue

@@ -110,6 +110,8 @@
               }
             });
             data.plan = plan.toString();
+          } else {
+            data.plan = '';
           }
           if (data.apply && data.apply[0]) {
             const apply: any[] = [];
@@ -119,6 +121,8 @@
               }
             });
             data.apply = apply.toString();
+          } else {
+            data.apply = '';
           }
           if (data.actual && data.actual[0]) {
             const actual: any[] = [];
@@ -128,6 +132,8 @@
               }
             });
             data.actual = actual.toString();
+          } else {
+            data.actual = '';
           }
           if (data.car) {
             for (let i = 0; i < data.car.length; i++) {

+ 9 - 7
src/views/event/meeting/customCom/CustomInput.vue

@@ -3,9 +3,7 @@
   <div class="wrap">
     <div class="content">
       <Input :placeholder="placeholder" disabled v-model:value="value" />
-      <a-button class="mr-2 add-btn" color="success" @click="openAddPop(placeholder)">
-        添加
-      </a-button>
+      <a-button class="mr-2 add-btn" color="success" @click="openAddPop()"> 添加 </a-button>
     </div>
     <Popup @register="register" @select="select" />
   </div>
@@ -24,6 +22,7 @@
     value: object | string;
     placeholder: string;
     disabled: boolean;
+    ids: number[];
   }
 
   export default defineComponent({
@@ -36,29 +35,32 @@
         value: '',
         placeholder: props.placeholder,
         disabled: false,
+        ids: [],
       });
       const [register, { openModal: openPopup }] = useModal();
       // 初始化
       function init() {
         nextTick(() => {
-          if (props.value) {
+          if (props.value[0]) {
             const nameArr: string[] = [];
-            const idArr: string[] = [];
+            const idArr: number[] = [];
             props.value.map((item) => {
               if (item.name && item.id) {
                 nameArr.push(item.name);
                 idArr.push(item.id);
               }
             });
+            state.ids = idArr;
             state.value = nameArr.toString();
+            console.log(`state.ids`, state.ids);
           }
         });
       }
       onUpdated(() => {
         init();
       });
-      function openAddPop(title) {
-        openPopup(true, title);
+      function openAddPop() {
+        openPopup(true, { title: state.placeholder, ids: state.ids });
       }
       function select(data) {
         emit('change', data);

+ 9 - 3
src/views/event/meeting/customCom/member/index.vue

@@ -23,7 +23,7 @@
   <Popup @register="addRegister" :popupData="popupData" @saveData="saveData" />
 </template>
 <script lang="ts">
-  import { defineComponent, reactive, ref, toRefs, unref } from 'vue';
+  import { defineComponent, onUpdated, reactive, ref, toRefs, unref } from 'vue';
   import Popup from './popup.vue';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useModal } from '/@/components/Modal';
@@ -39,12 +39,15 @@
   interface Btn {
     disable_btn: boolean;
   }
-
+  const props = {
+    ids: { type: Array, default: [] },
+  };
   export default defineComponent({
     name: 'User',
     components: { BasicTable, Popup },
+    props,
     emits: ['select'],
-    setup(_, { emit }) {
+    setup(props, { emit }) {
       const { createMessage } = useMessage();
       const { success /*, error*/ } = createMessage;
       const tableRef = ref<Nullable<TableActionType>>(null);
@@ -132,6 +135,9 @@
           success('创建成功!');
         });
       }
+      onUpdated(() => {
+        getTableAction().setSelectedRowKeys(props.ids);
+      });
       return {
         popupData,
         tableRef,

+ 9 - 11
src/views/event/meeting/customCom/popup.vue

@@ -7,14 +7,14 @@
     :title="title"
     helpMessage="请选择要添加的数据"
   >
-    <Member @select="select" />
+    <Member :ids="ids" @select="select" />
   </BasicModal>
 </template>
 <script lang="ts">
   import Member from './member/index.vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { defineComponent, reactive, toRefs, onUpdated } from 'vue';
-  import { useMessage } from '/@/hooks/web/useMessage';
+  // import { useMessage } from '/@/hooks/web/useMessage';
 
   export default defineComponent({
     components: { BasicModal, Member },
@@ -22,24 +22,22 @@
     setup(_, { emit }) {
       const state = reactive({
         title: '',
+        ids: [],
         data: { id: 0 },
       });
-      const { createMessage } = useMessage();
-      const { error } = createMessage;
+      // const { createMessage } = useMessage();
+      // const { error } = createMessage;
       const [register, { closeModal }] = useModalInner((data) => {
-        state.title = data;
+        state.title = data.title;
+        state.ids = data.ids;
       });
 
       function select(data) {
         state.data = data;
       }
       function sendRecord() {
-        if (state.data.id !== 0) {
-          emit('select', state.data);
-          closeModal();
-        } else {
-          error('请先选择要添加的数据!');
-        }
+        emit('select', state.data);
+        closeModal();
       }
       onUpdated(() => {
         document.onkeydown = function (e) {

+ 27 - 21
src/views/event/meeting/popup.vue

@@ -99,32 +99,38 @@
           data.id = role.id;
           data.starttime = moment(data.starttime).unix();
           data.endtime = moment(data.endtime).unix();
-          const plan: any[] = [];
-          const apply: any[] = [];
-          const actual: any[] = [];
-          data.plan.map((item) => {
-            if (item.id) {
-              plan.push(item.id);
-            }
-          });
-          data.apply.map((item) => {
-            if (item.id) {
-              apply.push(item.id);
-            }
-          });
-          data.actual.map((item) => {
-            if (item.id) {
-              actual.push(item.id);
-            }
-          });
-          if (data.plan[0]) {
+          if (data.plan && data.plan[0]) {
+            const plan: any[] = [];
+            data.plan.map((item) => {
+              if (item.id) {
+                plan.push(item.id);
+              }
+            });
             data.plan = plan.toString();
+          } else {
+            data.plan = '';
           }
-          if (data.apply[0]) {
+          if (data.apply && data.apply[0]) {
+            const apply: any[] = [];
+            data.apply.map((item) => {
+              if (item.id) {
+                apply.push(item.id);
+              }
+            });
             data.apply = apply.toString();
+          } else {
+            data.apply = '';
           }
-          if (data.actual[0]) {
+          if (data.actual && data.actual[0]) {
+            const actual: any[] = [];
+            data.actual.map((item) => {
+              if (item.id) {
+                actual.push(item.id);
+              }
+            });
             data.actual = actual.toString();
+          } else {
+            data.actual = '';
           }
           const popupData = { closeModal, data };
           emit('saveData', popupData);