|  | @@ -0,0 +1,408 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="app-container" ref="appContainer">
 | 
	
		
			
				|  |  | +    <ServerPropTable :loading="loading" @selection-change="selectionChange" :columns="column" :data="list" @reset="reset"
 | 
	
		
			
				|  |  | +      @onSubmit="onSubmit">
 | 
	
		
			
				|  |  | +      <template v-slot:btn>
 | 
	
		
			
				|  |  | +        <div style="display: flex; justify-content: flex-end">
 | 
	
		
			
				|  |  | +          <el-button type="primary" @click="add"
 | 
	
		
			
				|  |  | +          ><el-icon><plus /></el-icon> 添加</el-button>
 | 
	
		
			
				|  |  | +          <el-button type="danger" @click="batchDelete"><el-icon>
 | 
	
		
			
				|  |  | +              <delete />
 | 
	
		
			
				|  |  | +            </el-icon>删除</el-button>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </template>
 | 
	
		
			
				|  |  | +      <template v-slot:operation="scope">
 | 
	
		
			
				|  |  | +        <el-button type="primary" size="small" icon="Edit" @click="edit(scope.row)">
 | 
	
		
			
				|  |  | +          编辑
 | 
	
		
			
				|  |  | +        </el-button>
 | 
	
		
			
				|  |  | +        <el-button @click="del(scope.row)" type="danger" size="small" icon="Delete">
 | 
	
		
			
				|  |  | +          删除
 | 
	
		
			
				|  |  | +        </el-button>
 | 
	
		
			
				|  |  | +      </template>
 | 
	
		
			
				|  |  | +    </ServerPropTable>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-dialog v-model="dialogVisible" :title='title' width="50%">
 | 
	
		
			
				|  |  | +      <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"
 | 
	
		
			
				|  |  | +        :size="formSize">
 | 
	
		
			
				|  |  | +        <el-form-item label="ID" prop="id">
 | 
	
		
			
				|  |  | +          <el-input readonly v-model="ruleForm.id" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人服务器ID" prop="toServerIds">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.toServerIds" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人角色ID" prop="toPlayerIds">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.toPlayerIds" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人等级条件" prop="levelCondition">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.levelCondition" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人道具条件" prop="itemCondition">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.itemCondition" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人英雄条件" prop="heroCondition">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.heroCondition" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <el-form-item label="收件人角色创建时间">
 | 
	
		
			
				|  |  | +          <el-col :span="11">
 | 
	
		
			
				|  |  | +            <el-form-item prop="roleCreateTimeStart">
 | 
	
		
			
				|  |  | +              <el-date-picker
 | 
	
		
			
				|  |  | +                  v-model="ruleForm.roleCreateTimeStart"
 | 
	
		
			
				|  |  | +                  type="datetime"
 | 
	
		
			
				|  |  | +                  placeholder="选择起始时间"
 | 
	
		
			
				|  |  | +                  style="width: 100%"
 | 
	
		
			
				|  |  | +              />
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +          <el-col class="text-center" :span="2" style="text-align: center">
 | 
	
		
			
				|  |  | +            <span class="text-gray-500">-</span>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +          <el-col :span="11">
 | 
	
		
			
				|  |  | +            <el-form-item prop="roleCreateTimeEnd">
 | 
	
		
			
				|  |  | +              <el-date-picker v-model="ruleForm.roleCreateTimeEnd"  type="datetime" placeholder="选择截止时间" style="width: 100%" />
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="邮件标题" prop="title">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.title" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="发送者名称" prop="sendName">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.sendName" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="邮件道具" prop="itemInfo">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.itemInfo" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="邮件生效时间" required>
 | 
	
		
			
				|  |  | +          <el-col :span="11">
 | 
	
		
			
				|  |  | +            <el-form-item prop="validTime">
 | 
	
		
			
				|  |  | +              <el-date-picker
 | 
	
		
			
				|  |  | +                  v-model="ruleForm.validTime"
 | 
	
		
			
				|  |  | +                  type="datetime"
 | 
	
		
			
				|  |  | +                  placeholder="选择开始时间"
 | 
	
		
			
				|  |  | +                  style="width: 100%"
 | 
	
		
			
				|  |  | +              />
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +          <el-col class="text-center" :span="2" style="text-align: center">
 | 
	
		
			
				|  |  | +            <span class="text-gray-500">-</span>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +          <el-col :span="11">
 | 
	
		
			
				|  |  | +            <el-form-item prop="invalidTime">
 | 
	
		
			
				|  |  | +              <el-date-picker v-model="ruleForm.invalidTime"  type="datetime" placeholder="选择结束时间" style="width: 100%" />
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </el-col>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="邮件内容" prop="content">
 | 
	
		
			
				|  |  | +          <el-input v-model="ruleForm.content" :rows="10" type="textarea" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +      <template #footer>
 | 
	
		
			
				|  |  | +        <span class="dialog-footer">
 | 
	
		
			
				|  |  | +          <el-button @click="dialogVisible = false">取消</el-button>
 | 
	
		
			
				|  |  | +          <el-button type="primary" @click="handleClose(ruleFormRef)">确定</el-button>
 | 
	
		
			
				|  |  | +        </span>
 | 
	
		
			
				|  |  | +      </template>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<script lang="ts" setup name="comprehensive">
 | 
	
		
			
				|  |  | +import { ref, reactive, onMounted, nextTick } from 'vue'
 | 
	
		
			
				|  |  | +import { ElMessage, ElMessageBox } from 'element-plus'
 | 
	
		
			
				|  |  | +import type { FormInstance } from 'element-plus'
 | 
	
		
			
				|  |  | +const loading = ref(true)
 | 
	
		
			
				|  |  | +const appContainer = ref(null)
 | 
	
		
			
				|  |  | +import ServerPropTable from '@/components/Table/ServerPropTable/index.vue'
 | 
	
		
			
				|  |  | +const data = []
 | 
	
		
			
				|  |  | +for (let i = 0; i < 100; i++) {
 | 
	
		
			
				|  |  | +  data.push({
 | 
	
		
			
				|  |  | +    id: i + 1,
 | 
	
		
			
				|  |  | +    title: 'GM邮件' + (i+1),
 | 
	
		
			
				|  |  | +    validTime: '2023-08-21 10:00:00',
 | 
	
		
			
				|  |  | +    invalidTime: '2023-09-21 10:00:00',
 | 
	
		
			
				|  |  | +    itemInfo: '1002-100,1001-200',
 | 
	
		
			
				|  |  | +    sendName: '深渊联盟',
 | 
	
		
			
				|  |  | +    toServerIds: '1,2,3,4,5',
 | 
	
		
			
				|  |  | +    toPlayerIds: '10000001, 10000001',
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +const column = [
 | 
	
		
			
				|  |  | +  { type: 'selection', width: 60, fixed: 'left' },
 | 
	
		
			
				|  |  | +  { name: 'id', label: 'ID', width: 80 },
 | 
	
		
			
				|  |  | +  { name: 'title', label: '邮件标题', inSearch: true, valueType: 'input' },
 | 
	
		
			
				|  |  | +  { name: 'validTime', label: '邮件生效时间'},
 | 
	
		
			
				|  |  | +  { name: 'invalidTime', label: '邮件失效时间'},
 | 
	
		
			
				|  |  | +  { name: 'itemInfo', label: '邮件道具'},
 | 
	
		
			
				|  |  | +  { name: 'sendName', label: '发送者名称'},
 | 
	
		
			
				|  |  | +  { name: 'toServerIds', label: '收件人服务器ID'},
 | 
	
		
			
				|  |  | +  { name: 'toPlayerIds', label: '收件人玩家ID'},
 | 
	
		
			
				|  |  | +  { name: 'operation', slot: true, fixed: 'right', width: 200, label: '操作' },
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const list = ref(data)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const formSize = ref('default')
 | 
	
		
			
				|  |  | +const ruleFormRef = ref<FormInstance>()
 | 
	
		
			
				|  |  | +const ruleForm = reactive({
 | 
	
		
			
				|  |  | +    id: null,
 | 
	
		
			
				|  |  | +    title: null,
 | 
	
		
			
				|  |  | +    validTime: null,
 | 
	
		
			
				|  |  | +    invalidTime: null,
 | 
	
		
			
				|  |  | +    itemInfo: null,
 | 
	
		
			
				|  |  | +    sendName: '深渊联盟',
 | 
	
		
			
				|  |  | +    toServerIds: '0',
 | 
	
		
			
				|  |  | +    toPlayerIds: '0',
 | 
	
		
			
				|  |  | +    levelCondition: null,
 | 
	
		
			
				|  |  | +    itemCondition: null,
 | 
	
		
			
				|  |  | +    heroCondition: null,
 | 
	
		
			
				|  |  | +    roleCreateTimeStart: null,
 | 
	
		
			
				|  |  | +    roleCreateTimeEnd: null,
 | 
	
		
			
				|  |  | +    content: null,
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const rules = reactive({
 | 
	
		
			
				|  |  | +  toServerIds: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      message: '请输入收件人服务器ID',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  toPlayerIds: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      message: '请输入收件人角色ID',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  levelCondition: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      message: '请输入收件人等级条件',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  itemCondition: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      message: '请输入收件人道具条件',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  heroCondition: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      message: '请输入收件人英雄条件',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  roleCreateTimeStart: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      type: 'date',
 | 
	
		
			
				|  |  | +      message: '请输入收件人角色创建起始时间',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  roleCreateTimeEnd: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      type: 'date',
 | 
	
		
			
				|  |  | +      message: '请输入收件人角色创建截至时间',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  title: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      message: '请输入邮件标题',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  sendName: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      message: '请输入发送者名称',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  itemInfo: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      message: '请输入邮件道具',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  validTime : [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      type: 'date',
 | 
	
		
			
				|  |  | +      message: '请选择邮件生效时间',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  invalidTime: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      type: 'date',
 | 
	
		
			
				|  |  | +      message: '请选择邮件失效时间',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +  content: [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      required: true,
 | 
	
		
			
				|  |  | +      message: '请输入邮件内容',
 | 
	
		
			
				|  |  | +      trigger: 'change',
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const dialogVisible = ref(false)
 | 
	
		
			
				|  |  | +const rowObj = ref({})
 | 
	
		
			
				|  |  | +const selectObj = ref([])
 | 
	
		
			
				|  |  | +const title = ref('编辑')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const add = () => {
 | 
	
		
			
				|  |  | +  title.value = '新增'
 | 
	
		
			
				|  |  | +  dialogVisible.value = true
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const handleClose = async (done: () => void) => {
 | 
	
		
			
				|  |  | +  await ruleFormRef.value.validate((valid, fields) => {
 | 
	
		
			
				|  |  | +    if (valid) {
 | 
	
		
			
				|  |  | +      list.value.forEach((item) => {
 | 
	
		
			
				|  |  | +        if (item.id === rowObj.value.id) {
 | 
	
		
			
				|  |  | +          item.toServerIds = ruleForm.toServerIds
 | 
	
		
			
				|  |  | +          item.toPlayerIds = ruleForm.toPlayerIds
 | 
	
		
			
				|  |  | +          item.levelCondition = ruleForm.levelCondition
 | 
	
		
			
				|  |  | +          item.itemCondition = ruleForm.itemCondition
 | 
	
		
			
				|  |  | +          item.heroCondition = ruleForm.heroCondition
 | 
	
		
			
				|  |  | +          item.roleCreateTimeStart = ruleForm.roleCreateTimeStart
 | 
	
		
			
				|  |  | +          item.roleCreateTimeEnd = ruleForm.roleCreateTimeEnd
 | 
	
		
			
				|  |  | +          item.title = ruleForm.title
 | 
	
		
			
				|  |  | +          item.sendName = ruleForm.sendName
 | 
	
		
			
				|  |  | +          item.itemInfo = ruleForm.itemInfo
 | 
	
		
			
				|  |  | +          item.validTime = ruleForm.validTime
 | 
	
		
			
				|  |  | +          item.invalidTime = ruleForm.invalidTime
 | 
	
		
			
				|  |  | +          item.content = ruleForm.content
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      dialogVisible.value = false
 | 
	
		
			
				|  |  | +      console.log('submit!', ruleForm.title)
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      console.log('error submit!', fields)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const batchDelete = () => {
 | 
	
		
			
				|  |  | +  if (!selectObj.value.length) {
 | 
	
		
			
				|  |  | +    return ElMessage.error('未选中任何行')
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  ElMessageBox.confirm('你确定要删除选中项吗?', '温馨提示', {
 | 
	
		
			
				|  |  | +    confirmButtonText: '确定',
 | 
	
		
			
				|  |  | +    cancelButtonText: '取消',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    draggable: true,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +    .then(() => {
 | 
	
		
			
				|  |  | +      ElMessage.success('模拟删除成功')
 | 
	
		
			
				|  |  | +      list.value = list.value.concat([])
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    .catch(() => { })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +const selectionChange = (val) => {
 | 
	
		
			
				|  |  | +  selectObj.value = val
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const edit = (row) => {
 | 
	
		
			
				|  |  | +  rowObj.value = row
 | 
	
		
			
				|  |  | +  dialogVisible.value = true
 | 
	
		
			
				|  |  | +  ruleForm.id = row.id
 | 
	
		
			
				|  |  | +  ruleForm.toServerIds = row.toServerIds
 | 
	
		
			
				|  |  | +  ruleForm.toPlayerIds = row.toPlayerIds
 | 
	
		
			
				|  |  | +  ruleForm.levelCondition = row.levelCondition
 | 
	
		
			
				|  |  | +  ruleForm.itemCondition = row.itemCondition
 | 
	
		
			
				|  |  | +  ruleForm.heroCondition = row.heroCondition
 | 
	
		
			
				|  |  | +  ruleForm.roleCreateTimeStart = row.roleCreateTimeStart
 | 
	
		
			
				|  |  | +  ruleForm.roleCreateTimeEnd = row.roleCreateTimeEnd
 | 
	
		
			
				|  |  | +  ruleForm.title = row.title
 | 
	
		
			
				|  |  | +  ruleForm.sendName = row.sendName
 | 
	
		
			
				|  |  | +  ruleForm.itemInfo = row.itemInfo
 | 
	
		
			
				|  |  | +  ruleForm.validTime = row.validTime
 | 
	
		
			
				|  |  | +  ruleForm.invalidTime = row.invalidTime
 | 
	
		
			
				|  |  | +  ruleForm.content = row.content
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const del = (row) => {
 | 
	
		
			
				|  |  | +  console.log('row==', row)
 | 
	
		
			
				|  |  | +  ElMessageBox.confirm('你确定要删除当前项吗?', '温馨提示', {
 | 
	
		
			
				|  |  | +    confirmButtonText: '确定',
 | 
	
		
			
				|  |  | +    cancelButtonText: '取消',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    draggable: true,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +    .then(() => {
 | 
	
		
			
				|  |  | +      list.value = list.value.filter((item) => item.id !== row.id)
 | 
	
		
			
				|  |  | +      ElMessage.success('删除成功')
 | 
	
		
			
				|  |  | +      loading.value = true
 | 
	
		
			
				|  |  | +      setTimeout(() => {
 | 
	
		
			
				|  |  | +        loading.value = false
 | 
	
		
			
				|  |  | +      }, 500)
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    .catch(() => { })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const reset = () => {
 | 
	
		
			
				|  |  | +  loading.value = true
 | 
	
		
			
				|  |  | +  setTimeout(() => {
 | 
	
		
			
				|  |  | +    loading.value = false
 | 
	
		
			
				|  |  | +  }, 500)
 | 
	
		
			
				|  |  | +  ElMessage.success('触发重置方法')
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const onSubmit = (val) => {
 | 
	
		
			
				|  |  | +  console.log('val===', val)
 | 
	
		
			
				|  |  | +  ElMessage.success('触发查询方法')
 | 
	
		
			
				|  |  | +  loading.value = true
 | 
	
		
			
				|  |  | +  setTimeout(() => {
 | 
	
		
			
				|  |  | +    loading.value = false
 | 
	
		
			
				|  |  | +  }, 500)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const onUpdate = (val) => {
 | 
	
		
			
				|  |  | +  console.log('val===', val)
 | 
	
		
			
				|  |  | +  ElMessage.success('触发修改方法')
 | 
	
		
			
				|  |  | +  loading.value = true
 | 
	
		
			
				|  |  | +  setTimeout(() => {
 | 
	
		
			
				|  |  | +    loading.value = false
 | 
	
		
			
				|  |  | +  }, 500)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const getHeight = () => {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +onMounted(() => {
 | 
	
		
			
				|  |  | +  nextTick(() => {
 | 
	
		
			
				|  |  | +    // let data = appContainer.value.
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  setTimeout(() => {
 | 
	
		
			
				|  |  | +    loading.value = false
 | 
	
		
			
				|  |  | +  }, 500)
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style scoped>
 | 
	
		
			
				|  |  | +.edit-input {
 | 
	
		
			
				|  |  | +  padding-right: 100px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.app-container {
 | 
	
		
			
				|  |  | +  flex: 1;
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  padding: 16px;
 | 
	
		
			
				|  |  | +  box-sizing: border-box;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.cancel-btn {
 | 
	
		
			
				|  |  | +  position: absolute;
 | 
	
		
			
				|  |  | +  right: 15px;
 | 
	
		
			
				|  |  | +  top: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |