<template>
  <div>
    <el-row type="flex" class="add-btn" justify="end">
      <el-col :span="6" style="text-align: right;">
        <el-button type="success" plain @click="add" v-if="!$store.state.readonly">添加回复</el-button>
      </el-col>
    </el-row>
    <el-table
      :data="list"
      style="width: 100%">
      <el-table-column type="expand">
        <template slot-scope="props">
          <el-form label-position="top"  class="demo-table-expand">
            <el-form-item label="回复内容">
              <div v-for="(item, index) in JSON.parse(props.row.desc)">
                <span v-if="item.content && item.type==='text'">
                  回复{{index+1}}:
                  <span v-html="item.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion)"></span>
                </span>
                <span v-if="item.content && item.type==='image'">回复{{index+1}}:<img class="img" :src="item.content"/></span>
                <span v-if="item.variable">回复{{index+1}}:老师二维码</span>
              </div>
            </el-form-item>
          </el-form>
        </template>
      </el-table-column>
      <el-table-column
        label="ID"
        prop="id">
      </el-table-column>
      <el-table-column
        label="关键词"
        prop="value">
      </el-table-column>
      <el-table-column
        label="回复内容">
        <template slot-scope="scope">
          {{ JSON.parse(scope.row.desc).length }} 条回复
        </template>
      </el-table-column>
      <el-table-column
        prop="created_at"
        label="创建时间">
      </el-table-column>
      <el-table-column
        width="250"
        v-if="!$store.state.readonly"
        label="操作">
        <template slot-scope="scope">
          <el-button size="mini" plain type="warning" @click="edit(scope.row)">
            编辑
          </el-button>
          <el-button size="mini" plain type="danger" @click="del(scope.row)" v-if="$store.state.deletePermission">
            删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <dialog-com :dialogObj="dialogObj"  @changeShow="changeShow" @reflash="getList"/>
  </div>
</template>

<script>
    import dialogCom from './autoReplyDialog'
    import {getConfigListApi,deleteConfigApi,getConfigDetailApi} from "../../service/api";
    export default {
      name: "autoReply",
      data() {
        return {
          dialogObj:{
            value:'',
            desc:'',
            show:false,
            id:''
          },
          list: []
        }
      },
      components:{
        dialogCom
      },
      mounted(){
        this.getList()
      },
      methods: {
        // 将匹配结果替换表情图片
        emotion (res) {
          let word = res.replace(/\#|\;/gi,'')
          const list = ['微笑', '撇嘴', '色', '发呆', '得意', '流泪', '害羞', '闭嘴', '睡', '大哭', '尴尬', '发怒', '调皮', '呲牙', '惊讶', '难过', '酷', '冷汗', '抓狂', '吐', '偷笑', '可爱', '白眼', '傲慢', '饥饿', '困', '惊恐', '流汗', '憨笑', '大兵', '奋斗', '咒骂', '疑问', '嘘', '晕', '折磨', '衰', '骷髅', '敲打', '再见', '擦汗', '抠鼻', '鼓掌', '糗大了', '坏笑', '左哼哼', '右哼哼', '哈欠', '鄙视', '委屈', '快哭了', '阴险', '亲亲', '吓', '可怜', '菜刀', '西瓜', '啤酒', '篮球', '乒乓', '咖啡', '饭', '猪头', '玫瑰', '凋谢', '示爱', '爱心', '心碎', '蛋糕', '闪电', '炸弹', '刀', '足球', '瓢虫', '便便', '月亮', '太阳', '礼物', '拥抱', '强', '弱', '握手', '胜利', '抱拳', '勾引', '拳头', '差劲', '爱你', 'NO', 'OK', '爱情', '飞吻', '跳跳', '发抖', '怄火', '转圈', '磕头', '回头', '跳绳', '挥手', '激动', '街舞', '献吻', '左太极', '右太极']
          let index = list.indexOf(word)
          return `<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/${index}.gif" align="middle">`
        },
        changeShow(data){
          this.dialogObj.show=data
        },
        getList(){
          getConfigListApi({key: 'keywords_reply'}).then(res => {
            this.list = res.list
          })
        },
        add(){
          this.dialogObj.id = '';
          this.dialogObj.value = '';
          this.dialogObj.desc = '';
          this.dialogObj.show = true
        },
        edit(data){
          getConfigDetailApi(data.id).then((res) => {
            this.dialogObj.id = res.id;
            this.dialogObj.value = res.value;
            this.dialogObj.desc = res.desc;
            this.dialogObj.show = true;
          });
        },
        del(data){
          this.$confirm('此操作将删除该记录?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            deleteConfigApi(data.id).then(res=>{
              this.getList()
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
            });
          });
        }
      }
    }
</script>

<style scoped lang="less">
  @import "../../util/public";
  .add-btn {
    margin: 10px 0;
  }
  .img {
    width: 10%;
  }
</style>