chenrui пре 4 година
родитељ
комит
0367262ce0

+ 45 - 0
src/api/giftCard.js

@@ -0,0 +1,45 @@
+import { axios } from '@/utils/request'
+
+// 获取列表数据
+export const giftCardQuery = params => {
+  const url = `giftCard/query/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 新增礼品卡
+export const giftCardAdd = params => {
+  return axios({
+    url: `giftCard/batchAdd`,
+    data: params,
+    method: 'post'
+  })
+}
+// 编辑礼品卡
+export const giftCardEdit = params => {
+  return axios({
+    url: `giftCard/editGiftCardItem`,
+    data: params,
+    method: 'post'
+  })
+}
+// 礼品卡详情
+export const giftCardDetail = params => {
+  return axios({
+    url: `giftCard/detail/${params.id}`,
+    data: {},
+    method: 'get'
+  })
+}
+// 删除礼品卡
+export const giftCardDel = (params) => {
+  return axios({
+    url: `giftCard/delGiftCardItemById/${params.id}`,
+    data: {},
+    method: 'get'
+  })
+}

+ 10 - 0
src/config/router.config.js

@@ -331,6 +331,16 @@ export const asyncRouterMap = [{
         icon: 'edit',
         permission: 'M_lottery_list'
       }
+    },
+    {
+      path: '/market/giftCard',
+      name: 'giftCardManage',
+      component: () => import(/* webpackChunkName: "market" */ '@/views/market/giftCard/giftCard.vue'),
+      meta: {
+        title: '礼品卡管理',
+        icon: 'credit-card'
+        // permission: 'M_lottery_list'
+      }
     }
     ]
   },

+ 134 - 0
src/views/market/giftCard/addCardModal.vue

@@ -0,0 +1,134 @@
+<template>
+  <a-modal
+    centered
+    class="add-card-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="新增礼品卡"
+    v-model="isShow"
+    @cancle="isShow=false"
+    :width="600">
+    <a-form-model
+      id="add-card-form"
+      :model="formData"
+      :rules="rules"
+      ref="ruleForm"
+      :label-col="formItemLayout.labelCol"
+      :wrapper-col="formItemLayout.wrapperCol"
+      @submit="handleSubmit">
+      <a-form-model-item label="创建人">
+        <p class="creater">{{ userInfo.userNameCN }}</p><p class="telephone">{{ userInfo.mobile }}</p>
+      </a-form-model-item>
+      <a-form-model-item label="礼品卡内容" prop="goldNum">
+        <a-input-number
+          id="add-card-goldNum"
+          v-model="formData.goldNum"
+          :min="1"
+          :max="999999"
+          :precision="0"
+          style="width: 90%;margin-right: 5px;"
+          placeholder="请输入礼品卡内容(1~999999)"
+          allowClear /><span>乐豆</span>
+      </a-form-model-item>
+      <a-form-model-item label="礼品卡数量" prop="createNum">
+        <a-input-number
+          id="add-card-createNum"
+          v-model="formData.createNum"
+          :min="1"
+          :max="999999"
+          :precision="0"
+          style="width: 90%;margin-right: 5px;"
+          placeholder="请输入礼品卡数量(1~999999)"
+          allowClear /><span>张</span>
+      </a-form-model-item>
+      <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }" style="text-align: center;">
+        <a-button type="primary" html-type="submit" id="add-card-submit" style="margin-right: 15px">保存</a-button>
+        <a-button @click="isShow=false" style="margin-left: 15px" id="add-card-close">取消</a-button>
+      </a-form-model-item>
+    </a-form-model>
+  </a-modal>
+</template>
+
+<script>
+import { giftCardAdd } from '@/api/giftCard'
+import { mapGetters } from 'vuex'
+export default {
+  name: 'AddCardModal',
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    }
+  },
+  computed: {
+    ...mapGetters(['userInfo'])
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      formItemLayout: {
+        labelCol: { span: 4 },
+        wrapperCol: { span: 16 }
+      },
+      formData: {
+        goldNum: null, //  礼品卡内容
+        createNum: 1 //  礼品卡数量
+      },
+      rules: {
+        goldNum: [
+          { required: true, message: '请输入礼品卡内容', trigger: 'blur' }
+        ],
+        createNum: [
+          { required: true, message: '请输入礼品卡数量', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  methods: {
+    //  保存
+    handleSubmit (e) {
+      e.preventDefault()
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          giftCardAdd(_this.formData).then(res => {
+            if (res.status == 200) {
+              _this.isShow = false
+              this.$emit('refresh', true)
+            }
+          })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      } else {
+        this.$refs.ruleForm.resetFields()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .add-card-modal{
+    .creater{
+      display: inline-block;
+      margin-right: 15px;
+    }
+    .telephone{
+      display: inline-block;
+    }
+  }
+</style>

+ 140 - 0
src/views/market/giftCard/editCardModal.vue

@@ -0,0 +1,140 @@
+<template>
+  <a-modal
+    centered
+    class="edit-card-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="编辑礼品卡"
+    v-model="isShow"
+    @cancle="isShow=false"
+    :width="600">
+    <a-form-model
+      id="edit-card-form"
+      :model="formData"
+      :rules="rules"
+      ref="ruleForm"
+      :label-col="formItemLayout.labelCol"
+      :wrapper-col="formItemLayout.wrapperCol"
+      @submit="handleSubmit"
+      v-if="detailsData">
+      <a-form-model-item label="创建时间"> {{ detailsData.createDate }} </a-form-model-item>
+      <a-form-model-item label="创建人">
+        <p class="creater">{{ userInfo.userNameCN }}</p><p class="telephone">{{ userInfo.mobile }}</p>
+      </a-form-model-item>
+      <a-form-model-item label="礼品卡内容"> {{ detailsData.content }} </a-form-model-item>
+      <a-form-model-item label="实体卡编号" prop="optionalSequence">
+        <a-input id="edit-card-optionalSequence" :maxLength="30" v-model="formData.optionalSequence" placeholder="请输入实体卡编号(最多30个字符)" allowClear />
+      </a-form-model-item>
+      <a-form-model-item label="备注" prop="remarks">
+        <a-textarea id="edit-card-remarks" :maxLength="500" v-model="formData.remarks" placeholder="请输入备注(最多500个字符)" allowClear />
+      </a-form-model-item>
+      <a-form-model-item :wrapper-col="{ span: 12, offset: 6 }" style="text-align: center;">
+        <a-button type="primary" html-type="submit" id="edit-card-submit" style="margin-right: 15px">保存</a-button>
+        <a-button @click="isShow=false" style="margin-left: 15px" id="edit-card-close">取消</a-button>
+      </a-form-model-item>
+    </a-form-model>
+  </a-modal>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import { giftCardDetail, giftCardEdit } from '@/api/giftCard'
+export default {
+  name: 'EditCardModal',
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    cardId: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  computed: {
+    ...mapGetters(['userInfo'])
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      formItemLayout: {
+        labelCol: { span: 4 },
+        wrapperCol: { span: 16 }
+      },
+      formData: {
+        id: this.cardId,
+        optionalSequence: '', //  实体卡编号
+        remarks: '' //  备注
+      },
+      rules: {},
+      detailsData: null //  详情
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetails () {
+      giftCardDetail({ id: this.cardId }).then(res => {
+        if (res.status == 200) {
+          this.formData.id = res.data.id
+          this.formData.optionalSequence = res.data.optionalSequence || ''
+          this.formData.remarks = res.data.remarks || ''
+          this.detailsData = res.data
+        } else {
+          this.detailsData = null
+        }
+      })
+    },
+    //  物流信息  保存
+    handleSubmit (e) {
+      e.preventDefault()
+      const _this = this
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          giftCardEdit(_this.formData).then(res => {
+            if (res.status == 200) {
+              _this.isShow = false
+              this.$emit('refresh')
+            }
+          })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      } else {
+        this.$refs.ruleForm.resetFields()
+      }
+    },
+    cardId (newValue, oldValue) {
+      if (this.isShow && newValue) {
+        this.getDetails()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+  .edit-card-modal{
+    .creater{
+      display: inline-block;
+      margin: 0;
+      margin-right: 15px;
+    }
+    .telephone{
+      display: inline-block;
+      margin: 0;
+    }
+  }
+</style>

+ 121 - 0
src/views/market/giftCard/getCodeModal.vue

@@ -0,0 +1,121 @@
+<template>
+  <a-modal
+    centered
+    class="getcode-modal"
+    :footer="null"
+    :maskClosable="false"
+    title="获取充值码"
+    v-model="isShow"
+    @cancle="isShow=false"
+    :width="600">
+    <div v-if="detailsData">
+      <a-row :gutter="35">
+        <a-col :span="24" class="item-cont">
+          <p class="item-label">创建时间:</p>
+          <p class="item-main">{{ detailsData.createDate }}</p>
+        </a-col>
+        <a-col :span="24" class="item-cont">
+          <p class="item-label">创建人:</p>
+          <p class="item-main">{{ detailsData.name }}  {{ detailsData.phone }}</p>
+        </a-col>
+        <a-col :span="24" class="item-cont">
+          <p class="item-label">礼品卡内容:</p>
+          <p class="item-main">{{ detailsData.content }}</p>
+        </a-col>
+        <a-col :span="24" class="item-cont">
+          <p class="item-label">充值码:</p>
+          <div class="item-main">
+            <span style="margin-right: 15px;">{{ detailsData.sequence }}</span>
+            <a-button id="gift-card-copy" size="small" v-clipboard:copy="detailsData.sequence" v-clipboard:success="onCopy">复制</a-button>
+          </div>
+        </a-col>
+      </a-row>
+    </div>
+    <div class="btn-cont"><a-button id="network-detail-modal-back" @click="isShow=false">返回列表</a-button></div>
+  </a-modal>
+</template>
+
+<script>
+import { giftCardDetail } from '@/api/giftCard'
+export default {
+  name: 'GetCodeModal',
+  props: {
+    openModal: { //  弹框显示状态
+      type: Boolean,
+      default: false
+    },
+    cardId: {
+      type: [Number, String],
+      default: ''
+    }
+  },
+  data () {
+    return {
+      isShow: this.openModal, //  是否打开弹框
+      detailsData: null //  详情
+    }
+  },
+  methods: {
+    //  获取详情
+    getDetails () {
+      giftCardDetail({ id: this.cardId }).then(res => {
+        if (res.status == 200) {
+          this.detailsData = res.data
+        } else {
+          this.detailsData = null
+        }
+      })
+    },
+    //  复制
+    onCopy () {
+      this.$message.success('复制成功')
+    }
+  },
+  watch: {
+    //  父页面传过来的弹框状态
+    openModal (newValue, oldValue) {
+      this.isShow = newValue
+    },
+    //  重定义的弹框状态
+    isShow (newValue, oldValue) {
+      if (!newValue) {
+        this.$emit('close')
+      }
+    },
+    cardId (newValue, oldValue) {
+      if (this.isShow && newValue) {
+        this.getDetails()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less">
+  .getcode-modal{
+    .ant-modal-body {
+      padding: 40px 40px 24px;
+    }
+    .item-cont {
+      margin-bottom: 15px;
+      display: flex;
+      .item-label {
+        width: 115px;
+        font-size: 14px;
+        color: rgba(0, 0, 0, 0.85);
+        flex-shrink: 0;
+      }
+      .item-main {
+        flex-grow: 1;
+        word-break: break-all;
+        .wd-icon {
+          display: block;
+        }
+      }
+    }
+    .btn-cont {
+      text-align: center;
+      margin: 35px 0 10px;
+    }
+  }
+</style>

+ 289 - 0
src/views/market/giftCard/giftCard.vue

@@ -0,0 +1,289 @@
+<template>
+  <a-card :bordered="false" class="gift-card-wrap">
+    <!-- 搜索框 -->
+    <div class="gift-card-search">
+      <a-form layout="inline" v-bind="formItemLayout" @keyup.enter.native="$refs.table.refresh(true)">
+        <a-row :gutter="20">
+          <a-col :md="6" :sm="24">
+            <a-form-item label="创建时间" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-range-picker
+                id="gift-card-time"
+                v-model="time"
+                :format="dateFormat"
+                :placeholder="['开始时间','结束时间']"
+                :disabledDate="disabledDate"
+                @change="onChange" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="礼品卡内容" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input
+                allowClear
+                v-model="searchData.goldNum"
+                :maxLength="30"
+                placeholder="请输入礼品卡内容"
+                suffix="乐豆"
+                id="gift-card-goldNum" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="实体卡编号" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model="searchData.optionalSequence" :maxLength="30" placeholder="请输入实体卡编号" id="gift-card-optionalSequence" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="是否已充值" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <v-select
+                ref="giftCardState"
+                code="GIFT_CARD_STATE"
+                v-model="searchData.state"
+                allowClear
+                placeholder="请选择"
+                id="gift-card-enable-state"></v-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="充值时间" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-range-picker
+                id="gift-card-rechargeTime"
+                v-model="rechargeTime"
+                :format="dateFormat"
+                :placeholder="['开始时间','结束时间']"
+                :disabledDate="disabledDate"
+                @change="onRechargeChange" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="充值用户" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model="searchData.customPhone" :maxLength="30" placeholder="请输入充值用户" id="gift-card-customPhone" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="充值码" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
+              <a-input allowClear v-model="searchData.sequence" :maxLength="30" placeholder="请输入充值码" id="gift-card-sequence" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-button class="handle-btn serach-btn" type="primary" @click="$refs.table.refresh(true)" id="gift-card-refresh" :disabled="disabled">查询</a-button>
+            <a-button class="handle-btn" @click="resetForm" id="gift-card-resetForm" :disabled="disabled">重置</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <div class="add">
+      <a-button
+        type="primary"
+        icon="plus"
+        class="addBtn"
+        @click="handleAdd"
+        id="gift-card-add"
+        :disabled="disabled"
+        v-if="$hasPermissions('B_giftCard_add')">新增礼品卡</a-button>
+    </div>
+    <!-- table列表 -->
+    <s-table
+      ref="table"
+      size="default"
+      :rowKey="(record) => record.id"
+      :columns="columns"
+      :data="loadData"
+      bordered>
+      <!-- 操作按钮 -->
+      <span slot="action" slot-scope="text, record">
+        <a-button id="gift-card-getCode" class="blue" type="link" v-if="$hasPermissions('B_giftCard_getCode')" @click="getCode(record)">获取充值码</a-button>
+        <a-button id="gift-card-handleEdit" class="green" type="link" v-if="$hasPermissions('B_giftCard_edit')" @click="handleEdit(record)">编辑</a-button>
+        <a-button
+          v-if="record.state==0&&$hasPermissions('B_giftCard_del')"
+          id="gift-card-handleDel"
+          class="red"
+          type="link"
+          @click="handleDel(record)">删除</a-button>
+      </span>
+    </s-table>
+    <!-- 新增礼品卡 -->
+    <add-card-modal :openModal="openAddCardModal" @close="closeModal" @refresh="refreshFun" />
+    <!-- 编辑礼品卡 -->
+    <edit-card-modal :openModal="openEditCardModal" :cardId="cardId" @refresh="refreshFun" @close="closeModal" />
+    <!-- 获取充值码 -->
+    <get-code-modal :openModal="openGetCodeModal" :cardId="cardId" @close="closeModal" />
+  </a-card>
+</template>
+
+<script>
+import { STable, VSelect } from '@/components'
+import AddCardModal from './addCardModal.vue'
+import EditCardModal from './editCardModal.vue'
+import GetCodeModal from './getCodeModal.vue'
+import { giftCardQuery, giftCardDel } from '@/api/giftCard.js'
+
+export default {
+  components: { STable, VSelect, GetCodeModal, AddCardModal, EditCardModal },
+  data () {
+    return {
+      disabled: true, //  页面初始化之前是否可操作
+      formItemLayout: {
+        labelCol: { span: 9 },
+        wrapperCol: { span: 15 }
+      },
+      searchData: {
+        startTime: null, //  创建时间  开始
+        endTime: null, //  创建时间  结束
+        goldNum: null, //  礼品卡内容
+        optionalSequence: null, //  实体卡编号
+        state: undefined, //  是否已充值
+        useTimeStart: null, //  充值时间  开始
+        useTimeEnd: null, //  充值时间  结束
+        customPhone: null, //  充值用户
+        sequence: null //  充值码
+      },
+      showEditModal: false, // 默认关闭弹窗
+      itemId: null, // 编辑行id
+      time: [], //  创建时间
+      rechargeTime: [], //  充值时间
+      dateFormat: 'YYYY-MM-DD',
+      // 表头
+      columns: [
+        { title: '序号', dataIndex: 'no', width: 60, align: 'center' },
+        { title: '创建时间', dataIndex: 'createDate', width: 100, align: 'center' },
+        { title: '创建人', dataIndex: 'name', width: 100, align: 'center' },
+        { title: '礼品卡内容', dataIndex: 'content', width: 100, align: 'center' },
+        { title: '实体卡编号', dataIndex: 'optionalSequence', width: 100, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '是否已充值', dataIndex: 'stateDictValue', width: 100, align: 'center' },
+        { title: '充值时间', dataIndex: 'useTime', width: 100, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '充值用户', dataIndex: 'customPhone', width: 100, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '备注', dataIndex: 'remarks', width: 100, align: 'center', customRender: (text) => { return text || '--' } },
+        { title: '操作', scopedSlots: { customRender: 'action' }, align: 'center', width: 100 }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        return giftCardQuery(Object.assign(parameter, this.searchData)).then(res => {
+          const no = (res.data.pageNo - 1) * res.data.pageSize
+          if (res.status == 200) {
+            for (let i = 0; i < res.data.list.length; i++) {
+              const _item = res.data.list[i]
+              _item.no = no + i + 1
+            }
+            this.disabled = false
+            return res.data
+          }
+        })
+      },
+      cardId: null, //  卡id
+      openGetCodeModal: false, //  获取充值码  弹框状态
+      openAddCardModal: false, //  新增礼品卡  弹框状态
+      openEditCardModal: false //  编辑礼品卡  弹框状态
+    }
+  },
+  methods: {
+    // 不可选日期
+    disabledDate (date, dateStrings) {
+      return date && date.valueOf() > Date.now()
+    },
+    // 创建时间change
+    onChange (dates, dateStrings) {
+      if ((dates, dateStrings)) {
+        this.searchData.startTime = dateStrings[0]
+        this.searchData.endTime = dateStrings[1]
+      }
+    },
+    // 充值时间change
+    onRechargeChange (dates, dateStrings) {
+      if ((dates, dateStrings)) {
+        this.searchData.useTimeStart = dateStrings[0]
+        this.searchData.useTimeEnd = dateStrings[1]
+      }
+    },
+    //  获取充值码
+    getCode (record) {
+      this.cardId = record.id
+      this.openGetCodeModal = true
+    },
+    // 新增
+    handleAdd () {
+      this.cardId = null
+      this.openAddCardModal = true
+    },
+    // 编辑
+    handleEdit (record) {
+      this.cardId = record.id
+      this.openEditCardModal = true
+    },
+    //  关闭弹框
+    closeModal () {
+      this.cardId = null
+      this.openAddCardModal = false
+      this.openEditCardModal = false
+      this.openGetCodeModal = false
+    },
+    //  刷新数据
+    refreshFun (state) {
+      //  新增需刷新第一页数据。编辑为当前页数据
+      this.$refs.table.refresh(state)
+    },
+    // 删除
+    handleDel (record) {
+      this.$confirm({
+        title: '警告',
+        centered: true,
+        content: '删除后无法恢复,确认删除?',
+        okText: '确定',
+        cancelText: '取消',
+        onOk: () => {
+          giftCardDel({ id: record.id }).then(res => {
+            if (res.status == 200) {
+              this.$message.success(res.message)
+              this.$refs.table.refresh()
+            }
+          })
+        }
+      })
+    },
+    // 重置
+    resetForm () {
+      this.searchData.startTime = null
+      this.searchData.endTime = null
+      this.searchData.goldNum = null
+      this.searchData.optionalSequence = null
+      this.searchData.state = null
+      this.searchData.useTimeStart = null
+      this.searchData.useTimeEnd = null
+      this.searchData.customPhone = null
+      this.searchData.sequence = null
+      this.$refs.table.refresh(true)
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+	.gift-card-wrap{
+		.gift-card-search{
+      .ant-form-inline .ant-form-item{
+        width: 100%;
+      }
+      // 搜索框的下间距
+      .ant-form-item {
+        margin-bottom: 10px;
+      }
+      .handle-btn{
+        margin-top: 4px;
+      }
+      .serach-btn{
+        margin-right: 10px;
+      }
+		}
+		.addBtn {
+			margin-bottom: 20px;
+		}
+    .blue {
+    	color: #1890fe;
+    }
+    .green {
+    	color: #16b50e;
+    }
+    .red {
+    	color: red;
+    }
+	}
+
+</style>