카테고리 없음

Page 개발시 Defalt

Binsoo 2021. 10. 5. 13:27
728x90
반응형

🟠 Vue

더보기

<template>

  <div class = "app-container">

    <searchBox

      @click:search = "searchClick"/>

    <div>

      <centerLayout

        :btnInfo    = "btnInfo"

        @click:btn1 = "insertArirang"

        @click:btn2 = "deleteArirang"

      />

    </div>

    <el-table

      :data               = "tableData"

      :header-cell-style  = "{textAlign: 'center'}"

      :default-sort       = "{prop: 'spCnt', order: 'descending'}"

      @sort-change        = "sortChange"

      @selection-change   = "handleSelectionChange"

      style               = "width: 100%;"

      highlight-current-row

      border

      fit

    > 

    <el-table-column

      type="selection"

      width="55">

    </el-table-column>

    <el-table-column label="단어" align="left">

      <template slot-scope="{row}">

        <span :title="row.wordNm ">{{ row.wordNm }}</span> 

      </template>

      </el-table-column>

      <el-table-column label="품사" prop="col3" align="left">

        <template slot-scope="{row}">

          <span>{{ row.features }}</span>

        </template>

      </el-table-column>

      <el-table-column label="사용여부" align="left">

        <template slot-scope="{row}">

            <el-tag :type="row.useYn | statusFilter">

            {{ row.useYn }}

          </el-tag>

        </template>

      </el-table-column>

      <el-table-column label="등록자" align="left">

        <template slot-scope="{row}">

            {{ row.rgnId }}

        </template> 

      </el-table-column>

      <el-table-column label="등록일" align="left">

        <template slot-scope="{row}">

            {{ row.rgnDtm | parseTime('{y}-{m}-{d}') }}

        </template> 

      </el-table-column>

    </el-table>

    <div class="divpage">

      <pagination v-show="param.totalCnt>0" :total="param.totalCnt" :page.sync="param.rowNum" :limit.sync="param.limitNum" @pagination="fetchList"/>

    </div>

    <div>

      <el-divider></el-divider>

    </div>

  </div>

</template>

 

<script>

import { getFetchList } from '@/api/poms-api/dictionary/basic/arirang/arirang'

import centerLayout from '@/views/common/layout/centerLayout1'

import searchBox from '@/views/common/search/search12'

import Pagination from '@/components/Pagination'

import  _ from 'lodash'

 

export default {

  name: 'Dictionary_Arirang'

  , components: { 

    Pagination

    , searchBox

    , centerLayout

  }

 

  , data() {

    return {

      btnInfo : {

        btnName1   : '등록'

        , btnName2   : '삭제'

      }

 

      , param : {

        orderByField   : ''

        , orderByValue : ''

        , rowNum       : 0

        , limitNum     : 10   

        , totalCnt     : 100  

      }

      , multipleSelection : []

      , tableData : []

        

    }

  }

  

  , created() {

    this.fetchList()

  }

  , methods : {

      async fetchList(){  

        await getFetchList(this.param).thenresponse => {

          this.tableData = response.data.response_data

        })

      }

 

     /**  메소드명 변경하고 사용해주세요 **/

      , insertArirang(){

 

      }

 

     /** 메소드명 변경하고 사용해주세요 **/

      , deleteArirang(){

 

      }

 

      /** 체크박스 값 **/

      , handleSelectionChangeval ) {

        this.multipleSelection = val;

      }

 

      /** ORDER BY SETTING **/

      , sortChangerow ){

        this.param.rowNum = 1

        this.param.orderByField = row.order === null ? '' : row.prop;

        this.param.orderByValue = row.order === 'ascending' ? 'ASC' :  row.order === 'descending' ? 'DESC' : '' ;

        this.fetchList();

      }

 

      , searchClickval ){

        console.log(val)

      }

  }

 

  , filters: {

    statusFilter(status) {

      const statusMap = {

        'Y': 'success'

        , 'N': 'info'

      }

      return statusMap[status]

    }

    , typeFilter(type) {

      return calendarTypeKeyValue[type]

    }

  }

}

</script>

 

<style scopedlang="scss">

.search-table { overflow-xscrollwhite-space:nowrapfont-family"Malgun Gothic"font-size11.5ptwidth:100%background-color#ebeef3padding10px 20px 10px 20px; }

.th1 { padding : 0 16px 0 13pxwidth150pxtext-alignleft; }

.td3 { padding-top10px; }

.td4 { width20%padding10px 0 0 20px ; } 

.div1 { padding-bottom4%; }

.div2 { floatleftpadding-top1%; }

.excel-div { floatleftpadding-top3%width100%font-size13px;} .span1floatright;}

.divpage { text-aligncenter;}

::v-deep .el-dialog__header { positionrelativeheight45pxpadding0 !importantbackground#1890ff } 

::v-deep .el-dialog__title { positionabsoluteheightauto !importanttop50%transformtranslateY(-50%); height24pxpadding0 0 0 20pxcolor#ffffont-size16px; } 

::v-deep .el-dialog__headerbtn { positionabsolutetop50%right0transformtranslateY(-50%); padding0 20px 0 0; } 

::v-deep .el-dialog__close { color#fff !important }

.dialog-titlecolor : black } 

.el-col {border-radius4px;}

.bg-purple {border1px solid #ccc;padding10px 20px;height520px;}

.bg-purple-light {margin-left20px;border1px solid #ccc;padding10px 20px;height520px;}

.grid-content {min-height36px;}

.row-bg {padding10px 0;background-color#f9fafc;}

.scrollable {height150px;max-height100%;overflow-yauto !important;displayblock;}

.infos {font-size11px;color#204fa3;line-height1.5;font-weight600;}

.grid-content > table {width100%;border-spacing0 10px;table-layoutfixed;border-stylehidden;}

.grid-content > table > tr > td

.grid-content > table > tr > th {padding-bottom10px;border-bottom1px solid #aaa;}

::v-deep .el-input__inner {overflowhidden;text-overflowellipsis;white-spacenowrap;}

::v-deep .el-form-item__content {displayflex;}

</style>

 

🟠 API Js

더보기

import request from '@/utils/request'

 

export function getFetchList(param){

    return request({

        url: '/api/dictionary/arirang'

        , method: 'get'

        , params: {

            rowNum       : (param.rowNum-1) * 10 < 0 ? 0 : (param.rowNum-1) * 10

            , limitNum     : param.limitNum

            , orderByField : param.orderByField

            , orderByValue : param.orderByValue

        }

    })

}

 

728x90
반응형