|
|
@@ -1,238 +1,240 @@
|
|
|
<template>
|
|
|
- <div class="edit-view">
|
|
|
- <page-title>
|
|
|
- <el-button @click="$router.go(-1)" :disabled="saving"> 取消 </el-button>
|
|
|
- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id"> 删除 </el-button>
|
|
|
- <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
|
|
|
- </page-title>
|
|
|
- <div class="edit-view__content-wrapper">
|
|
|
- <div class="edit-view__content-section">
|
|
|
- <el-form
|
|
|
- :model="formData"
|
|
|
- :rules="rules"
|
|
|
- ref="form"
|
|
|
- label-width="108px"
|
|
|
- label-position="right"
|
|
|
- size="small"
|
|
|
- style="max-width: 500px"
|
|
|
- >
|
|
|
- <el-form-item prop="date" label="日期">
|
|
|
- <el-date-picker v-model="formData.date" value-format="yyyy-MM" type="month" placeholder="选择月">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="signNum" label="累计签到天数">
|
|
|
- <el-input-number v-model="formData.signNum" :step="1" :min="1"> </el-input-number>
|
|
|
- <div class="tip">输入规则:正整数,最小为1</div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="awardType" label="奖励类型">
|
|
|
- <el-select
|
|
|
- v-model="formData.awardType"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- placeholder="请选择"
|
|
|
- @change="changeAwardType()"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in awardTypeOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- prop="metaAccessoriesId"
|
|
|
- label="配饰"
|
|
|
- v-if="formData.awardType && formData.awardType === 'ACCESSORIES'"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="formData.metaAccessoriesId"
|
|
|
- placeholder="请选择"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in metaAccessories"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- prop="awardPic"
|
|
|
- label="NFT图片"
|
|
|
- v-if="formData.awardType && formData.awardType === 'NFT'"
|
|
|
- >
|
|
|
- <single-upload v-model="formData.awardPic"> </single-upload>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- prop="goldNum"
|
|
|
- label="金币数量"
|
|
|
- v-if="formData.awardType && formData.awardType === 'GOLD'"
|
|
|
- >
|
|
|
- <el-input-number v-model="formData.goldNum" :step="1" :min="1"> </el-input-number>
|
|
|
- <div class="tip">输入规则:正整数,最小为1</div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item class="form-submit">
|
|
|
- <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
|
|
|
- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- <el-button @click="$router.go(-1)" :disabled="saving"> 取消 </el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="edit-view">
|
|
|
+ <page-title>
|
|
|
+ <el-button @click="$router.go(-1)" :disabled="saving"> 取消 </el-button>
|
|
|
+ <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id"> 删除 </el-button>
|
|
|
+ <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
|
|
|
+ </page-title>
|
|
|
+ <div class="edit-view__content-wrapper">
|
|
|
+ <div class="edit-view__content-section">
|
|
|
+ <el-form
|
|
|
+ :model="formData"
|
|
|
+ :rules="rules"
|
|
|
+ ref="form"
|
|
|
+ label-width="108px"
|
|
|
+ label-position="right"
|
|
|
+ size="small"
|
|
|
+ style="max-width: 500px"
|
|
|
+ >
|
|
|
+ <el-form-item prop="date" label="日期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="formData.date"
|
|
|
+ value-format="yyyy-MM"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="signNum" label="累计签到天数">
|
|
|
+ <el-input-number v-model="formData.signNum" :step="1" :min="1"> </el-input-number>
|
|
|
+ <div class="tip">输入规则:正整数,最小为1</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="awardType" label="奖励类型">
|
|
|
+ <el-select
|
|
|
+ v-model="formData.awardType"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="changeAwardType()"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in awardTypeOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ prop="metaPropId"
|
|
|
+ label="道具"
|
|
|
+ v-if="formData.awardType && formData.awardType === 'META_PROP'"
|
|
|
+ >
|
|
|
+ <el-select v-model="formData.metaPropId" placeholder="请选择" filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in metaProps"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ prop="awardPic"
|
|
|
+ label="NFT图片"
|
|
|
+ v-if="formData.awardType && formData.awardType === 'NFT'"
|
|
|
+ >
|
|
|
+ <single-upload v-model="formData.awardPic"> </single-upload>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ prop="goldNum"
|
|
|
+ label="金币数量"
|
|
|
+ v-if="formData.awardType && formData.awardType === 'GOLD'"
|
|
|
+ >
|
|
|
+ <el-input-number v-model="formData.goldNum" :step="1" :min="1"> </el-input-number>
|
|
|
+ <div class="tip">输入规则:正整数,最小为1</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="form-submit">
|
|
|
+ <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
|
|
|
+ <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ <el-button @click="$router.go(-1)" :disabled="saving"> 取消 </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import { reg } from '../util/regRules';
|
|
|
export default {
|
|
|
- name: 'MetaSignAwardEdit',
|
|
|
- created() {
|
|
|
- if (this.$route.query.id) {
|
|
|
- this.$http
|
|
|
- .get('metaSignAward/get/' + this.$route.query.id)
|
|
|
- .then(res => {
|
|
|
- this.formData = res;
|
|
|
- })
|
|
|
- .catch(e => {
|
|
|
- console.log(e);
|
|
|
- this.$message.error(e.error);
|
|
|
- });
|
|
|
- }
|
|
|
- this.$http.get('/metaAccessories/findAll').then(res => {
|
|
|
- this.metaAccessories = res;
|
|
|
- });
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- metaAccessories: [],
|
|
|
- saving: false,
|
|
|
- reg,
|
|
|
- formData: {},
|
|
|
- rules: {
|
|
|
- date: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入日期',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- signNum: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入累计签到天数',
|
|
|
- trigger: 'blur'
|
|
|
- },
|
|
|
- {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- if (!this.reg.test(value)) {
|
|
|
- callback(new Error('累计签到天数必须为大于1的整数'));
|
|
|
- return;
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- ],
|
|
|
- awardType: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入奖励类型',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- metaAccessoriesId: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请选择配饰',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- awardPic: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请上传NFT图片',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
- goldNum: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请输入金币数量',
|
|
|
- trigger: 'blur'
|
|
|
- },
|
|
|
- {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- if (!this.reg.test(value)) {
|
|
|
- callback(new Error('金币数量必须为大于1的整数'));
|
|
|
- return;
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- awardTypeOptions: [
|
|
|
- { label: '配饰', value: 'ACCESSORIES' },
|
|
|
- { label: 'NFT', value: 'NFT' },
|
|
|
- { label: '金币', value: 'GOLD' }
|
|
|
- ]
|
|
|
- };
|
|
|
- },
|
|
|
- methods: {
|
|
|
- changeAwardType() {
|
|
|
- this.$delete(this.formData, 'metaAccessoriesId');
|
|
|
- this.$delete(this.formData, 'awardPic');
|
|
|
- this.$delete(this.formData, 'goldNum');
|
|
|
- },
|
|
|
- onSave() {
|
|
|
- this.$refs.form.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- this.submit();
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- submit() {
|
|
|
- let data = { ...this.formData };
|
|
|
+ name: 'MetaSignAwardEdit',
|
|
|
+ created() {
|
|
|
+ if (this.$route.query.id) {
|
|
|
+ this.$http
|
|
|
+ .get('metaSignAward/get/' + this.$route.query.id)
|
|
|
+ .then(res => {
|
|
|
+ this.formData = res;
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.$http.get('/metaProp/findAll').then(res => {
|
|
|
+ this.metaProps = res;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ metaProps: [],
|
|
|
+ saving: false,
|
|
|
+ reg,
|
|
|
+ formData: {},
|
|
|
+ rules: {
|
|
|
+ date: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入日期',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ signNum: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入累计签到天数',
|
|
|
+ trigger: 'blur'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (!this.reg.test(value)) {
|
|
|
+ callback(new Error('累计签到天数必须为大于1的整数'));
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ awardType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入奖励类型',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ metaPropId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择道具',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ awardPic: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请上传NFT图片',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ goldNum: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入金币数量',
|
|
|
+ trigger: 'blur'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (!this.reg.test(value)) {
|
|
|
+ callback(new Error('金币数量必须为大于1的整数'));
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ awardTypeOptions: [
|
|
|
+ { label: '金币', value: 'GOLD' },
|
|
|
+ { label: '元宇宙道具', value: 'META_PROP' },
|
|
|
+ { label: 'NFT', value: 'NFT' }
|
|
|
+
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ changeAwardType() {
|
|
|
+ this.$delete(this.formData, 'metaPropId');
|
|
|
+ this.$delete(this.formData, 'awardPic');
|
|
|
+ this.$delete(this.formData, 'goldNum');
|
|
|
+ },
|
|
|
+ onSave() {
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.submit();
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submit() {
|
|
|
+ let data = { ...this.formData };
|
|
|
|
|
|
- this.saving = true;
|
|
|
- this.$http
|
|
|
- .post('/metaSignAward/save', data, { body: 'json' })
|
|
|
- .then(res => {
|
|
|
- this.saving = false;
|
|
|
- this.$message.success('成功');
|
|
|
- this.$router.go(-1);
|
|
|
- })
|
|
|
- .catch(e => {
|
|
|
- console.log(e);
|
|
|
- this.saving = false;
|
|
|
- this.$message.error(e.error);
|
|
|
- });
|
|
|
- },
|
|
|
- onDelete() {
|
|
|
- this.$confirm('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
|
|
|
- .then(() => {
|
|
|
- return this.$http.post(`/metaSignAward/del/${this.formData.id}`);
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.$message.success('删除成功');
|
|
|
- this.$router.go(-1);
|
|
|
- })
|
|
|
- .catch(e => {
|
|
|
- if (e !== 'cancel') {
|
|
|
- console.log(e);
|
|
|
- this.$message.error((e || {}).error || '删除失败');
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
+ this.saving = true;
|
|
|
+ this.$http
|
|
|
+ .post('/metaSignAward/save', data, { body: 'json' })
|
|
|
+ .then(res => {
|
|
|
+ this.saving = false;
|
|
|
+ this.$message.success('成功');
|
|
|
+ this.$router.go(-1);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ this.saving = false;
|
|
|
+ this.$message.error(e.error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onDelete() {
|
|
|
+ this.$confirm('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
|
|
|
+ .then(() => {
|
|
|
+ return this.$http.post(`/metaSignAward/del/${this.formData.id}`);
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$message.success('删除成功');
|
|
|
+ this.$router.go(-1);
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ if (e !== 'cancel') {
|
|
|
+ console.log(e);
|
|
|
+ this.$message.error((e || {}).error || '删除失败');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|