add
This commit is contained in:
		| @ -44,3 +44,11 @@ export function delTmMemberPlatform(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //修改TmMemberPlatform的字符 | ||||
| export function tmMemberPlatformChangeChar(data){ | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member-platform/change-chars', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| @ -1,78 +1,86 @@ | ||||
| import request from '@/utils/request' | ||||
| import request from "@/utils/request"; | ||||
|  | ||||
| // 查询TmMember列表 | ||||
| export function listTmMember(query) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
|     url: "/api/v1/tm-member", | ||||
|     method: "get", | ||||
|     params: query, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 查询TmMember详细 | ||||
| export function getTmMember(id) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member/' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
|     url: "/api/v1/tm-member/" + id, | ||||
|     method: "get", | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 新增TmMember | ||||
| export function addTmMember(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
|     url: "/api/v1/tm-member", | ||||
|     method: "post", | ||||
|     data: data, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 修改TmMember | ||||
| export function updateTmMember(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member/' + data.id, | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
|     url: "/api/v1/tm-member/" + data.id, | ||||
|     method: "put", | ||||
|     data: data, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 删除TmMember | ||||
| export function delTmMember(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member', | ||||
|     method: 'delete', | ||||
|     data: data | ||||
|   }) | ||||
|     url: "/api/v1/tm-member", | ||||
|     method: "delete", | ||||
|     data: data, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 获取API Key | ||||
| export function getMyKey() { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member/api-key', | ||||
|     method: 'get' | ||||
|   }) | ||||
|     url: "/api/v1/tm-member/api-key", | ||||
|     method: "get", | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 获取使用量统计 | ||||
| export function getTranslateDataStatistic() { | ||||
|   return request({ | ||||
|     url: '/api/v1/translate/datastatistics', | ||||
|     method: 'get' | ||||
|   }) | ||||
|     url: "/api/v1/translate/datastatistics", | ||||
|     method: "get", | ||||
|   }); | ||||
| } | ||||
|  | ||||
| // 字符充值 | ||||
| export function tmMemberRecharge(data) { | ||||
| // export function tmMemberRecharge(data) { | ||||
| //   return request({ | ||||
| //     url: '/api/v1/tm-member/recharge', | ||||
| //     method: 'post', | ||||
| //     data: data | ||||
| //   }) | ||||
| // } | ||||
|  | ||||
| export function tmMemberManageRecharge(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member/recharge', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
|     url: "/api/v1/tm-member/manager-recharge", | ||||
|     method: "post", | ||||
|     data: data, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| export function changeTmMemberStatus(data) { | ||||
|   return request({ | ||||
|     url: '/api/v1/tm-member/status', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
|     url: "/api/v1/tm-member/status", | ||||
|     method: "put", | ||||
|     data: data, | ||||
|   }); | ||||
| } | ||||
|  | ||||
| @ -79,6 +79,9 @@ | ||||
|                       :style="{ width: '100%' }" | ||||
|                     /> | ||||
|                   </el-form-item> | ||||
|                   <el-form-item label="默认赠送字符数"> | ||||
|                     <el-input v-model="form.tm_gift_characters" placeholder="请输入默认赠送字符数"></el-input> | ||||
|                   </el-form-item> | ||||
|                   <el-form-item size="large"> | ||||
|                     <el-button type="primary" @click="submitForm">提交</el-button> | ||||
|                     <el-button @click="resetForm">重置</el-button> | ||||
| @ -121,7 +124,8 @@ export default { | ||||
|         sys_user_initPassword: undefined, | ||||
|         sys_index_skinName: undefined, | ||||
|         sys_index_sideTheme: undefined, | ||||
|         trx_receive_address: undefined | ||||
|         trx_receive_address: undefined, | ||||
|         tm_gift_characters: undefined | ||||
|       }, | ||||
|       rules: { | ||||
|         sys_app_name: [{ | ||||
| @ -144,7 +148,8 @@ export default { | ||||
|           message: '请选择侧栏主题', | ||||
|           trigger: 'change' | ||||
|         }], | ||||
|         trx_receive_address: [{ required: true, message: '请输入TRX收货地址', trigger: 'blur' }] | ||||
|         trx_receive_address: [{ required: true, message: '请输入TRX收货地址', trigger: 'blur' }], | ||||
|         tm_gift_characters: [{ required: true, message: '请输入默认赠送字符数', trigger: 'blur' }] | ||||
|       }, | ||||
|       otherRules: { | ||||
|  | ||||
|  | ||||
| @ -3,23 +3,13 @@ | ||||
|     <template #wrapper> | ||||
|       <el-card class="box-card"> | ||||
|         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||
|           <el-form-item label="用户昵称" prop="nickName"><el-input | ||||
|             v-model="queryParams.nickName" | ||||
|             placeholder="请输入用户昵称" | ||||
|             clearable | ||||
|             size="small" | ||||
|             @keyup.enter.native="handleQuery" | ||||
|           /> | ||||
|           <el-form-item label="用户昵称" prop="nickName"><el-input v-model="queryParams.nickName" placeholder="请输入用户昵称" | ||||
|               clearable size="small" @keyup.enter.native="handleQuery" /> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="状态" prop="status"> | ||||
|  | ||||
|             <el-select v-model="queryParams.status" clearable placeholder="请选择"> | ||||
|               <el-option | ||||
|                 v-for="dict in statusOptions" | ||||
|                 :key="dict.value" | ||||
|                 :label="dict.label" | ||||
|                 :value="dict.value" | ||||
|               /> | ||||
|               <el-option v-for="dict in statusOptions" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||
|             </el-select> | ||||
|           </el-form-item> | ||||
|  | ||||
| @ -49,23 +39,33 @@ | ||||
|  | ||||
|         <el-table v-loading="loading" :data="tmMemberList" @selection-change="handleSelectionChange"> | ||||
|           <el-table-column type="selection" width="55" align="center" /> | ||||
|           <el-table-column label="Id" align="center" prop="userId" width="80" /> | ||||
|           <el-table-column label="用户昵称" align="center" prop="nickName" :show-overflow-tooltip="true" /> | ||||
|           <el-table-column label="Key" align="center" prop="apiKey" /> | ||||
|           <!-- <el-table-column label="总字符" align="center" prop="totalChars" /> --> | ||||
|           <el-table-column label="剩余字符" align="center" prop="remainChars"> | ||||
|           <el-table-column label="已用字符" align="center"> | ||||
|             <template slot-scope="scope"> | ||||
|               <div v-for="(item,index) in scope.row.platforms" :key="'remains'+index">{{ item.name }}:{{ item.remainChars }}</div> | ||||
|               <div v-for="(item, index) in scope.row.usedPlatform" :key="'used' + index"> | ||||
|                 {{ item.name }}:{{ item.totalChars }} | ||||
|                 <!-- <el-button v-permisaction="['admin:tmMember:changeChars']" | ||||
|                   size="mini" type="text" icon="el-icon-edit" class="char-btn">修改 | ||||
|                 </el-button> --> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="状态" align="center" :show-overflow-tooltip="true"> | ||||
|           <el-table-column label="剩余字符" align="center" prop="remainChars"> | ||||
|             <template slot-scope="scope"> | ||||
|               <el-switch | ||||
|                 v-if="checkPermisAction(['admin:tmMember:changeStatus'])" | ||||
|                 v-model="scope.row.status" | ||||
|                 :active-value="1" | ||||
|                 :inactive-value="2" | ||||
|                 @change="handleStatusChange(scope.row)" | ||||
|               /> | ||||
|               <div v-for="(item, index) in scope.row.platforms" :key="'remains' + index">{{ item.name }}:{{ | ||||
|                 item.totalChars }} <el-button v-permisaction="['admin:tmMember:changeChars']" size="mini" type="text" | ||||
|                   icon="el-icon-edit" class="char-btn" | ||||
|                   @click="handleChangeChar(item, scope.row.nickName, 1)">修改</el-button> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="状态" align="center" width="80px"> | ||||
|             <template slot-scope="scope"> | ||||
|               <el-switch v-if="checkPermisAction(['admin:tmMember:changeStatus'])" v-model="scope.row.status" | ||||
|                 :active-value="1" :inactive-value="2" @change="handleStatusChange(scope.row)" /> | ||||
|               <div v-else> | ||||
|                 <el-tag v-if="scope.row.status === 1" type="success">启用</el-tag> | ||||
|                 <el-tag v-else type="danger">禁用</el-tag> | ||||
| @ -73,18 +73,18 @@ | ||||
|               <!--  --> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="用户状态" align="center"> | ||||
|           <el-table-column label="用户状态" align="center" width="100"> | ||||
|             <template slot-scope="scope"> | ||||
|               <el-tag v-if="scope.row.userStatus === 2" type="success">正常</el-tag> | ||||
|               <el-tag v-else type="danger">禁用</el-tag> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="创建时间" prop="createdAt" sortable="custom" width="155"> | ||||
|           <el-table-column label="创建时间" prop="createdAt" sortable="custom" width="150"> | ||||
|             <template slot-scope="scope"> | ||||
|               <span>{{ parseTime(scope.row.createdAt) }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|           <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120"> | ||||
|             <template slot-scope="scope"> | ||||
|               <!-- <el-popconfirm class="delete-popconfirm" title="确认要修改吗?" confirm-button-text="修改" | ||||
|                                 @confirm="handleUpdate(scope.row)"> | ||||
| @ -98,19 +98,10 @@ | ||||
|                                     type="text" icon="el-icon-delete">删除 | ||||
|                                 </el-button> | ||||
|                             </el-popconfirm> --> | ||||
|               <el-popconfirm | ||||
|                 class="delete-popconfirm" | ||||
|                 title="确认要充值吗?" | ||||
|                 confirm-button-text="充值" | ||||
|                 @confirm="handleRecharge(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
|                   v-permisaction="['admin:tmMember:recharge']" | ||||
|                   size="mini" | ||||
|                   type="text" | ||||
|                   icon="el-icon-edit" | ||||
|                 >充值 | ||||
|               <el-popconfirm class="delete-popconfirm" title="确认要充值吗?" confirm-button-text="充值" | ||||
|                 @confirm="handleRecharge(scope.row)"> | ||||
|                 <el-button slot="reference" v-permisaction="['admin:tmMember:recharge']" size="mini" type="text" | ||||
|                   icon="el-icon-edit">充值 | ||||
|                 </el-button> | ||||
|               </el-popconfirm> | ||||
|  | ||||
| @ -118,13 +109,8 @@ | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|  | ||||
|         <pagination | ||||
|           v-show="total > 0" | ||||
|           :total="total" | ||||
|           :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" | ||||
|           @pagination="getList" | ||||
|         /> | ||||
|         <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageIndex" | ||||
|           :limit.sync="queryParams.pageSize" @pagination="getList" /> | ||||
|  | ||||
|         <!-- 添加或修改对话框 --> | ||||
|         <!-- <el-dialog :title="title" :visible.sync="open" width="500px"> | ||||
| @ -165,13 +151,14 @@ | ||||
|                     </div> | ||||
|                 </el-dialog> --> | ||||
|  | ||||
|         <tm-member-recharge | ||||
|           :id="rechargeId" | ||||
|           v-model="showRecharge" | ||||
|           :api-key="showApiKey" | ||||
|           :nick-name="showNickName" | ||||
|           @close="handleRechargeClose" | ||||
|         /> | ||||
|         <tm-member-recharge :userId="showRechargeData.UserId" v-model="showRecharge" :memberId="showRechargeData.memberId" | ||||
|           :api-key="showRechargeData.showApiKey" :nick-name="showRechargeData.showNickName" @close="handleRechargeClose" /> | ||||
|  | ||||
|         <!-- <tm-member-change :visible.sync="showChange" :memberId="showCangeData.memberId" | ||||
|           :userId="showCangeData.userId" | ||||
|           :userName="showCangeData.nickName" :platformName="showCangeData.platformName" | ||||
|           :totalNum="showCangeData.totalNum" :platformId="showCangeData.platformId" | ||||
|            @close="handleChangeCharClose" /> --> | ||||
|       </el-card> | ||||
|     </template> | ||||
|   </BasicLayout> | ||||
| @ -181,11 +168,13 @@ | ||||
| import { addTmMember, delTmMember, getTmMember, listTmMember, updateTmMember, changeTmMemberStatus } from '@/api/admin/tm-member' | ||||
| import TmMemberRecharge from './tm-member-recharge.vue' | ||||
| import checkPermisAction from '@/utils/permisaction' | ||||
| import TmMemberChange from './tm-member-change.vue' | ||||
|  | ||||
| export default { | ||||
|   name: 'TmMember', | ||||
|   components: { | ||||
|     TmMemberRecharge | ||||
|     TmMemberRecharge, | ||||
|     TmMemberChange | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
| @ -205,8 +194,20 @@ export default { | ||||
|       open: false, | ||||
|       isEdit: false, | ||||
|       showRecharge: false, | ||||
|       showApiKey: undefined, | ||||
|       showNickName: undefined, | ||||
|       showRechargeData: { | ||||
|         showApiKey: undefined, | ||||
|         showNickName: undefined, | ||||
|         memberId: undefined, | ||||
|         userId: undefined, | ||||
|       }, | ||||
|       showChange: false, | ||||
|       showCangeData: { | ||||
|         nickName: undefined, | ||||
|         platformId: undefined, | ||||
|         platformName: undefined, | ||||
|         totalNum: undefined, | ||||
|         type: undefined, | ||||
|       }, | ||||
|       rechargeId: undefined, | ||||
|       // 类型数据字典 | ||||
|       typeOptions: [], | ||||
| @ -282,10 +283,10 @@ export default { | ||||
|       } | ||||
|       this.resetForm('form') | ||||
|     }, | ||||
|     getImgList: function() { | ||||
|     getImgList: function () { | ||||
|       this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl | ||||
|     }, | ||||
|     fileClose: function() { | ||||
|     fileClose: function () { | ||||
|       this.fileOpen = false | ||||
|     }, | ||||
|     areaCodeFormat(row) { | ||||
| @ -321,7 +322,7 @@ export default { | ||||
|     handleUpdate(row) { | ||||
|       this.reset() | ||||
|       const id = | ||||
|                 row.id || this.ids | ||||
|         row.id || this.ids | ||||
|       getTmMember(id).then(response => { | ||||
|         this.form = response.data | ||||
|         this.open = true | ||||
| @ -330,7 +331,7 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|     /** 提交按钮 */ | ||||
|     submitForm: function() { | ||||
|     submitForm: function () { | ||||
|       this.$refs['form'].validate(valid => { | ||||
|         if (valid) { | ||||
|           if (this.form.id !== undefined) { | ||||
| @ -365,7 +366,7 @@ export default { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(function() { | ||||
|       }).then(function () { | ||||
|         return delTmMember({ 'ids': Ids }) | ||||
|       }).then((response) => { | ||||
|         if (response.code === 200) { | ||||
| @ -375,13 +376,16 @@ export default { | ||||
|         } else { | ||||
|           this.msgError(response.msg) | ||||
|         } | ||||
|       }).catch(function() { | ||||
|       }).catch(function () { | ||||
|       }) | ||||
|     }, | ||||
|     handleRecharge(row) { | ||||
|       this.rechargeId = row.id | ||||
|       this.showApiKey = row.apiKey | ||||
|       this.showNickName = row.nickName | ||||
|       this.showRechargeData={ | ||||
|         UserId: row.userId, | ||||
|         memberId: row.id, | ||||
|         showApiKey: row.apiKey, | ||||
|         showNickName: row.nickName | ||||
|       } | ||||
|       this.showRecharge = true | ||||
|     }, | ||||
|     handleRechargeClose() { | ||||
| @ -404,7 +408,31 @@ export default { | ||||
|         .finally(() => { | ||||
|           this.loading = false | ||||
|         }) | ||||
|     }, | ||||
|     handleChangeChar(row, nickName, type) { | ||||
|       this.showCangeData = { | ||||
|         nickName: nickName, | ||||
|         platformId: row.platformId, | ||||
|         platformName: row.name, | ||||
|         memberId: row.memberId, | ||||
|         userId: row.userId, | ||||
|         totalNum: row.totalChars, | ||||
|         type: type | ||||
|       } | ||||
|  | ||||
|       this.showChange = true | ||||
|  | ||||
|     }, | ||||
|     // 修改字符关闭事件 | ||||
|     handleChangeCharClose() { | ||||
|       this.getList() | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped> | ||||
| .char-btn { | ||||
|   margin-left: 5px; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										119
									
								
								src/views/admin/tm-member/tm-member-change.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								src/views/admin/tm-member/tm-member-change.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| <template> | ||||
|  | ||||
|     <el-dialog title="字符充值" :visible.sync="visible" width="500px" @close="handleClose" @open="handleOpen"> | ||||
|         <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||||
|             <el-form-item label="用户" prop="userName">{{ userName }}</el-form-item> | ||||
|             <el-form-item label="平台名称" prop="platformName"> | ||||
|                 {{ platformName }} | ||||
|             </el-form-item> | ||||
|             <el-form-item label="剩余字符数量" prop="changeNum"> | ||||
|                 <el-input v-model.number="form.changeNum" placeholder="请输入剩余字符数量"></el-input> | ||||
|             </el-form-item> | ||||
|         </el-form> | ||||
|         <div slot="footer" class="dialog-footer"> | ||||
|             <el-button type="primary" :loading="loading" @click="submitForm">确 定</el-button> | ||||
|             <el-button @click="cancel">取 消</el-button> | ||||
|         </div> | ||||
|     </el-dialog> | ||||
| </template> | ||||
| <script> | ||||
| import { tmMemberPlatformChangeChar } from '@/api/admin/tm-member-platform' | ||||
| export default { | ||||
|     name: 'TmMemberChange', | ||||
|     props: { | ||||
|         type:{ | ||||
|             type:Number, | ||||
|             default:1 | ||||
|         }, | ||||
|         memberId: { | ||||
|             type: Number, | ||||
|             required: true, | ||||
|             default: 0 | ||||
|         }, | ||||
|         userName: { | ||||
|             type: String, | ||||
|             default: '' | ||||
|         }, | ||||
|         platformId:{ | ||||
|             type:Number, | ||||
|             default:0 | ||||
|         }, | ||||
|         platformName: { | ||||
|             type: String, | ||||
|             default: '' | ||||
|         }, | ||||
|         totalNum: { | ||||
|             type: Number, | ||||
|             default: 0 | ||||
|         }, | ||||
|         visible: { | ||||
|             type: Boolean, | ||||
|             default: false | ||||
|         } | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             form: { | ||||
|                 memberId: undefined, | ||||
|                 platformId: undefined, | ||||
|                 changeNum: 0 | ||||
|             }, | ||||
|             rules: { | ||||
|                 changeNum: [ | ||||
|                     { required: true, message: '请输入剩余字符数量', trigger: 'blur' }] | ||||
|             }, | ||||
|             loading: false | ||||
|         } | ||||
|     }, | ||||
|     // watch:{ | ||||
|     //     totalNum(newVal,oldVal){ | ||||
|     //         if(newVal!==oldVal){ | ||||
|     //             this.form.changeNum=newVal | ||||
|     //         } | ||||
|     //     } | ||||
|     // }, | ||||
|     methods: { | ||||
|         resetForm() { | ||||
|             this.form = { | ||||
|                 memberId: undefined, | ||||
|                 platformId: undefined, | ||||
|                 changeNum: 0 | ||||
|             } | ||||
|         }, | ||||
|         handleOpen() { | ||||
|             this.form.changeNum = this.totalNum | ||||
|         }, | ||||
|         handleClose() { | ||||
|             this.resetForm() | ||||
|             this.$emit('update:visible', false) | ||||
|             this.$emit('close') | ||||
|         }, | ||||
|         cancel() { | ||||
|             this.loading = false | ||||
|             this.handleClose() | ||||
|         }, | ||||
|         submitForm() { | ||||
|             this.$refs['form'].validate(valid => { | ||||
|                 if (valid) { | ||||
|                     this.loading = true | ||||
|                     this.form.memberId = this.memberId | ||||
|                     this.form.platformId = this.platformId | ||||
|                     this.form.type=this.type | ||||
|  | ||||
|                     tmMemberPlatformChangeChar(this.form).then(response => { | ||||
|                         if (response.code === 200) { | ||||
|                             this.$message.success('修改成功') | ||||
|                             this.handleClose() | ||||
|                         } else { | ||||
|                             this.$message.error(response.message) | ||||
|                         } | ||||
|                     }) | ||||
|                         .finally(() => { | ||||
|                             this.loading = false | ||||
|                         }) | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| </script> | ||||
| @ -1,114 +1,141 @@ | ||||
| <template> | ||||
|   <el-dialog title="字符充值" :visible.sync="value" width="500px" @close="handleClose" @open="handleOpen"> | ||||
|     <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||||
|       <el-form-item label="用户昵称" prop="nickName"> | ||||
|         {{ nickName }} | ||||
|       </el-form-item> | ||||
|       <el-form-item label="翻译平台" prop="platformId"> | ||||
|         <el-select v-model="form.platformId" placeholder="请选择翻译平台"> | ||||
|           <el-option v-for="item in platformList" :key="item.id" :label="item.name" :value="item.id" /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="apiKey"> | ||||
|         {{ apiKey }} | ||||
|       </el-form-item> | ||||
|       <el-form-item label="充值字符(万)" prop="totalChars"> | ||||
|         <el-input v-model.number="form.totalChars" placeholder="充值字符(万)" /> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <div slot="footer" class="dialog-footer"> | ||||
|       <el-button type="primary" :loading="loading" @click="submitForm">确 定</el-button> | ||||
|       <el-button @click="cancel">取 消</el-button> | ||||
|     </div> | ||||
|   </el-dialog> | ||||
|     <el-dialog title="字符充值" :visible.sync="value" width="500px" @close="handleClose" @open="handleOpen"> | ||||
|         <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||||
|             <el-form-item label="用户昵称" prop="nickName"> | ||||
|                 {{ nickName }} | ||||
|             </el-form-item> | ||||
|             <el-form-item label="翻译平台" prop="platformId"> | ||||
|                 <el-select v-model="form.platformId" placeholder="请选择翻译平台"> | ||||
|                     <el-option v-for="item in platformList" :key="item.id" :label="item.name" :value="item.id" /> | ||||
|                 </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="apiKey"> | ||||
|                 {{ apiKey }} | ||||
|             </el-form-item> | ||||
|             <el-form-item label="充值金额(U)" prop="amount"> | ||||
|                 <el-input v-model.number="form.amount" placeholder="充值金额(U)" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="充值字符(万)" prop="totalChars"> | ||||
|                 <el-input v-model.number="form.totalChars" placeholder="充值字符(万)" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="过期时间(天)" prop="expireDays"> | ||||
|                 <el-input v-model.number="form.expireDays" placeholder="过期时间(天)" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="收款渠道"> | ||||
|                 <el-select v-model="form.payChannel" clearable placeholder="请选择收款渠道"> | ||||
|                     <el-option label="TRX" value="TRX" /> | ||||
|                 </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="收款地址"> | ||||
|                 <el-input v-model="form.payAddress" placeholder="收款地址" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="交易hash"> | ||||
|                 <el-input v-model="form.txHash" placeholder="交易hash" /> | ||||
|             </el-form-item> | ||||
|              | ||||
|         </el-form> | ||||
|         <div slot="footer" class="dialog-footer"> | ||||
|             <el-button type="primary" :loading="loading" @click="submitForm">确 定</el-button> | ||||
|             <el-button @click="cancel">取 消</el-button> | ||||
|         </div> | ||||
|     </el-dialog> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { tmMemberRecharge } from '@/api/admin/tm-member' | ||||
| import { tmMemberManageRecharge } from '@/api/admin/tm-member' | ||||
| import { listTmPlatform } from '@/api/admin/tm-platform' | ||||
|  | ||||
| export default { | ||||
|   name: 'TmMemberRecharge', | ||||
|   props: { | ||||
|     value: { | ||||
|       type: Boolean, | ||||
|       default: false | ||||
|     }, | ||||
|     apiKey: { | ||||
|       type: String, | ||||
|       default: '' | ||||
|     }, | ||||
|     nickName: { | ||||
|       type: String, | ||||
|       default: '' | ||||
|     }, | ||||
|     id: { | ||||
|       type: Number, | ||||
|       default: 0 | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       loading: false, | ||||
|       form: {}, | ||||
|       remainChars: 0, | ||||
|       rules: { | ||||
|         platformId: [{ required: true, message: '请选择翻译平台', trigger: 'blur' }], | ||||
|         totalChars: [{ required: true, message: '请输入充值字符(万)', trigger: 'blur' }] | ||||
|       }, | ||||
|       platformList: [] | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|   methods: { | ||||
|     handleOpen() { | ||||
|       this.getPlatform() | ||||
|     }, | ||||
|     getPlatform() { | ||||
|       listTmPlatform({ pageIndex: 1, pageSize: 1000 }).then(response => { | ||||
|         if (response.code === 200) { | ||||
|           this.platformList = response.data.list | ||||
|     name: 'TmMemberRecharge', | ||||
|     props: { | ||||
|         value: { | ||||
|             type: Boolean, | ||||
|             default: false | ||||
|         }, | ||||
|         apiKey: { | ||||
|             type: String, | ||||
|             default: '' | ||||
|         }, | ||||
|         nickName: { | ||||
|             type: String, | ||||
|             default: '' | ||||
|         }, | ||||
|         memberId: { | ||||
|             type: Number, | ||||
|             default: 0 | ||||
|         }, | ||||
|         userId: { | ||||
|             type: Number, | ||||
|             default: 0 | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     resetForm() { | ||||
|       this.form = { | ||||
|         id: undefined, | ||||
|         apiKey: undefined, | ||||
|         totalChars: undefined | ||||
|       } | ||||
|     data() { | ||||
|         return { | ||||
|             loading: false, | ||||
|             form: {}, | ||||
|             remainChars: 0, | ||||
|             rules: { | ||||
|                 platformId: [{ required: true, message: '请选择翻译平台', trigger: 'blur' }], | ||||
|                 totalChars: [{ required: true, message: '请输入充值字符(万)', trigger: 'blur' }], | ||||
|                 expireDays: [{ required: true, message: '请输入过期时间(天)', trigger: 'blur' }] | ||||
|             }, | ||||
|             platformList: [] | ||||
|         } | ||||
|     }, | ||||
|     handleClose() { | ||||
|       this.resetForm() | ||||
|       this.$emit('input', false) | ||||
|       this.$emit('close') | ||||
|     }, | ||||
|     cancel() { | ||||
|       this.loading = false | ||||
|       this.handleClose() | ||||
|     }, | ||||
|     submitForm() { | ||||
|       this.$refs['form'].validate(valid => { | ||||
|         if (valid) { | ||||
|           this.loading = true | ||||
|           this.form.id = this.id | ||||
|           const platform = this.platformList.find(item => item.id === this.form.platformId) | ||||
|           this.form.platformCode = platform.code | ||||
|  | ||||
|           tmMemberRecharge(this.form).then(response => { | ||||
|             if (response.code === 200) { | ||||
|               this.$message.success('充值成功!') | ||||
|               this.handleClose() | ||||
|             } else { | ||||
|               this.$message.error(response.message) | ||||
|     methods: { | ||||
|         handleOpen() { | ||||
|             this.getPlatform() | ||||
|         }, | ||||
|         getPlatform() { | ||||
|             listTmPlatform({ pageIndex: 1, pageSize: 1000 }).then(response => { | ||||
|                 if (response.code === 200) { | ||||
|                     this.platformList = response.data.list | ||||
|                 } | ||||
|             }) | ||||
|         }, | ||||
|         resetForm() { | ||||
|             this.form = { | ||||
|                 id: undefined, | ||||
|                 apiKey: undefined, | ||||
|                 totalChars: undefined, | ||||
|                 userId:undefined, | ||||
|                 memberId:undefined, | ||||
|                 expireDays: undefined, | ||||
|             } | ||||
|           }) | ||||
|             .finally(() => { | ||||
|               this.loading = false | ||||
|         }, | ||||
|         handleClose() { | ||||
|             this.resetForm() | ||||
|             this.$emit('input', false) | ||||
|             this.$emit('close') | ||||
|         }, | ||||
|         cancel() { | ||||
|             this.loading = false | ||||
|             this.handleClose() | ||||
|         }, | ||||
|         submitForm() { | ||||
|             this.$refs['form'].validate(valid => { | ||||
|                 if (valid) { | ||||
|                     this.loading = true | ||||
|                     this.form.memberId = this.memberId | ||||
|                     this.form.userId = this.userId | ||||
|                     const platform = this.platformList.find(item => item.id === this.form.platformId) | ||||
|                     this.form.platformCode = platform.code | ||||
|  | ||||
|                     tmMemberManageRecharge(this.form).then(response => { | ||||
|                         if (response.code === 200) { | ||||
|                             this.$message.success('充值成功!') | ||||
|                             this.handleClose() | ||||
|                         } else { | ||||
|                             this.$message.error(response.message) | ||||
|                         } | ||||
|                     }) | ||||
|                         .finally(() => { | ||||
|                             this.loading = false | ||||
|                         }) | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| </script> | ||||
|  | ||||
| @ -109,11 +109,13 @@ | ||||
|                 icon="el-icon-view" | ||||
|                 @click="handlePreview(scope.row)" | ||||
|               >预览</el-button> | ||||
|  | ||||
|  | ||||
|               <el-popconfirm | ||||
|                 class="delete-popconfirm" | ||||
|                 title="正在使用代码生成请确认?" | ||||
|                 confirm-button-text="生成" | ||||
|                 @onConfirm="handleToProject(scope.row)" | ||||
|                 @confirm="handleToProject(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
| @ -127,7 +129,7 @@ | ||||
|                 class="delete-popconfirm" | ||||
|                 title="正在使用【菜单以及API生成到数据库】请确认?" | ||||
|                 confirm-button-text="写入DB" | ||||
|                 @onConfirm="handleToDB(scope.row)" | ||||
|                 @confirm="handleToDB(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
| @ -141,7 +143,7 @@ | ||||
|                 class="delete-popconfirm" | ||||
|                 title="正在使用代码生成配置迁移脚本请确认?" | ||||
|                 confirm-button-text="生成" | ||||
|                 @onConfirm="handleToApiFile(scope.row)" | ||||
|                 @confirm="handleToApiFile(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
| @ -154,7 +156,7 @@ | ||||
|               <el-popconfirm | ||||
|                 class="delete-popconfirm" | ||||
|                 title="确认删除数据项?" | ||||
|                 @onConfirm="handleSingleDelete(scope.row)" | ||||
|                 @confirm="handleSingleDelete(scope.row)" | ||||
|               > | ||||
|                 <el-button | ||||
|                   slot="reference" | ||||
|  | ||||
		Reference in New Issue
	
	Block a user