HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/assets/vue/smartComponents/Agents.vue
<template>
  <BModal
    id="workflow-modal"
    centered
    title="Assign to..."
    title-class="font-18"
    hide-footer
    size="sm"
    v-if="showWidget"
  >
    <div class="height-set smart-list">
      <div class="spinner-main">
        <growing-loader :isMini="true" v-if="loading"></growing-loader>
      </div>
      <template v-if="!loading">
        <div class="smart-list-wrapper mb-2">
          <h6>Agents</h6>
          <div class="mb-3" v-for="(v, index) in agents" :key="index">
            <div class="form-check mb-3">
              <input
                class="form-check-input"
                type="checkbox"
                :id="`formCheckcolor${index}`"
                checked=""
                v-model="selectedAgents"
                :value="v.value"
                @change="$emit('selectedAgents', selectedAgents)"
              />
              <label class="form-check-label" :for="`formCheckcolor${index}`">
                {{ v.label }}
              </label>
            </div>
          </div>
          <h6>Teams</h6>
          <div class="mb-3" v-for="(v, index) in teams" :key="index + agents.length">
            <div class="form-check mb-3">
              <input
                class="form-check-input"
                type="checkbox"
                :id="`formCheckcolor${index + agents.length}`"
                checked=""
                v-model="selectedTeams"
                :value="v.value"
                @change="$emit('selectedTeams', selectedTeams)"
              />
              <label
                class="form-check-label"
                :for="`formCheckcolor${index + agents.length}`"
              >
                {{ v.label }}
              </label>
            </div>
          </div>
        </div>
      </template>
    </div>
  </BModal>
</template>
<script>
import GrowingLoader from "../components/GrowingLoader.vue";
import MainService from "../service/mainService";
import { BModal, VBModal } from "bootstrap-vue-next";
//import VueFinalModal from 'vue-final-modal';

export default {
  props: {
    showSmartAgentList: {
      type: Boolean,
      required: true,
    },
    formwidgetId: [],
    initialValues: {
      type: Object,
      required: true,
    },
  },
  data() {
    return {
      selectedAgents: [],
      selectedTeams: [],
      showWidget: this.showSmartAgentList,
      agentsLoading: false,
      errorMessage: "",
      agents: [],
      teams: [],
      selectedID: [],
      showcreateForm: false,
      submitted: false,
    };
  },

  methods: {
    async getList() {
      this.errorMessage = "";
      this.agentsLoading = true;
      const {
        data: { data, message, success },
      } = await MainService.getAgents();
      if (!success) {
        this.errorMessage = message;
      } else {
        this.agents = _.map(
          _.filter(data, ({ isTeam = false }) => !isTeam),
          ({ firstname, lastname, userId: value }) => ({
            label: `${firstname} ${lastname}`,
            value,
          })
        );
        this.teams = _.map(
          _.filter(data, ({ isTeam = true }) => isTeam),
          ({ teamName, userId: value }) => ({
            label: teamName,
            value,
          })
        );
      }
      this.agentsLoading = false;
    },

    reset() {
      this.selectedID = null;
    },
  },
  computed: {
    loading() {
      return this.agentsLoading;
    },
    // triggerAgentUpdateKey() {
    //   return `${this.selectedAgents.length}-${this.selectedTeams.length}`;
    // },
  },
  watch: {
    // triggerAgentUpdateKey() {
    //   this.$emit('selectedMembers', [
    //     ...this.selectedAgents,
    //     ...this.selectedTeams,
    //   ]);
    // },
    showWidget(v) {
      if (!v) {
        this.$emit("onClose");
        this.selectedAgents = [];
        this.selectedTeams = [];
        this.agentsLoading = false;
        this.errorMessage = "";
        this.agents = [];
        this.teams = [];
        this.selectedID = [];
        this.showcreateForm = false;
        this.submitted = false;
      } else {
      }
    },
    showSmartAgentList(v) {
      if (v) {
        this.showWidget = true;
        this.selectedAgents = this.initialValues.agentIds;
        this.selectedTeams = this.initialValues.teamIDs;
        this.getList();
      }
    },
  },
  components: {
    GrowingLoader,
    // VueFinalModal,
    BModal,
  },
  //directives: { 'b-modal': VBModal }
};
</script>