1
This commit is contained in:
		| @ -5,9 +5,9 @@ | |||||||
|   "author": "https://github.com/wenjianzhang", |   "author": "https://github.com/wenjianzhang", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", |     "dev": " vue-cli-service serve", | ||||||
|     "build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", |     "build:prod": " vue-cli-service build", | ||||||
|     "build:stage": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging", |     "build:stage": " vue-cli-service build --mode staging", | ||||||
|     "preview": "node build/index.js --preview", |     "preview": "node build/index.js --preview", | ||||||
|     "lint": "eslint --ext .js,.vue src", |     "lint": "eslint --ext .js,.vue src", | ||||||
|     "test:unit": "jest --clearCache && vue-cli-service test:unit", |     "test:unit": "jest --clearCache && vue-cli-service test:unit", | ||||||
|  | |||||||
| @ -51,3 +51,12 @@ export function getMainUser(data) { | |||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // 获取可用api user | ||||||
|  | export function getReverseOptions(params) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-api-user/reverse-options', | ||||||
|  |     method: 'get', | ||||||
|  |     params: params | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | |||||||
							
								
								
									
										46
									
								
								src/api/admin/line-reverse-position.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/api/admin/line-reverse-position.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | import request from '@/utils/request' | ||||||
|  |  | ||||||
|  | // 查询LineReversePosition列表 | ||||||
|  | export function listLineReversePosition(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-position', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 查询LineReversePosition详细 | ||||||
|  | export function getLineReversePosition(id) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-position/' + id, | ||||||
|  |     method: 'get' | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 新增LineReversePosition | ||||||
|  | export function addLineReversePosition(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-position', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 修改LineReversePosition | ||||||
|  | export function updateLineReversePosition(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-position/' + data.id, | ||||||
|  |     method: 'put', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 删除LineReversePosition | ||||||
|  | export function delLineReversePosition(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-position', | ||||||
|  |     method: 'delete', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										46
									
								
								src/api/admin/line-reverse-setting.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/api/admin/line-reverse-setting.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | import request from '@/utils/request' | ||||||
|  |  | ||||||
|  | // 查询LineReverseSetting列表 | ||||||
|  | export function listLineReverseSetting(query) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-setting', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 查询LineReverseSetting详细 | ||||||
|  | export function getLineReverseSetting(id) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-setting/' + id, | ||||||
|  |     method: 'get' | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 新增LineReverseSetting | ||||||
|  | export function addLineReverseSetting(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-setting', | ||||||
|  |     method: 'post', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 修改LineReverseSetting | ||||||
|  | export function updateLineReverseSetting(data) { | ||||||
|  |   return request({ | ||||||
|  |     url: '/api/v1/line-reverse-setting/' + data.id, | ||||||
|  |     method: 'put', | ||||||
|  |     data: data | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // // 删除LineReverseSetting | ||||||
|  | // export function delLineReverseSetting(data) { | ||||||
|  | //     return request({ | ||||||
|  | //         url: '/api/v1/line-reverse-setting', | ||||||
|  | //         method: 'delete', | ||||||
|  | //         data: data | ||||||
|  | //     }) | ||||||
|  | // } | ||||||
|  |  | ||||||
| @ -78,48 +78,6 @@ | |||||||
|             prop="ipAddress" |             prop="ipAddress" | ||||||
|             :show-overflow-tooltip="true" |             :show-overflow-tooltip="true" | ||||||
|           /> |           /> | ||||||
|           <!-- <el-table-column |  | ||||||
|             label="代码账号密码" |  | ||||||
|             align="center" |  | ||||||
|             prop="userPass" |  | ||||||
|             :show-overflow-tooltip="true" |  | ||||||
|           /> --> |  | ||||||
|           <!-- <el-table-column |  | ||||||
|             label="归属" |  | ||||||
|             align="center" |  | ||||||
|             prop="affiliation" |  | ||||||
|             :show-overflow-tooltip="true" |  | ||||||
|           > |  | ||||||
|             <template #default="{row}">{{ ['现货','合约','现货合约'][row.affiliation-1] }}</template> |  | ||||||
|           </el-table-column> --> |  | ||||||
|           <!-- <el-table-column |  | ||||||
|             label="是否超管可见" |  | ||||||
|             align="center" |  | ||||||
|             prop="adminShow" |  | ||||||
|             :show-overflow-tooltip="true" |  | ||||||
|           > |  | ||||||
|             <template #default="{row}">{{ ['否','是'][row.adminShow] }}</template> |  | ||||||
|           </el-table-column> --> |  | ||||||
|           <!-- <el-table-column |  | ||||||
|             label="允许下单的方向" |  | ||||||
|             align="center" |  | ||||||
|             prop="site" |  | ||||||
|             :show-overflow-tooltip="true" |  | ||||||
|           > |  | ||||||
|             <template #default="{row}">{{ ['多','空','多空'][row.site-1] }}</template> |  | ||||||
|           </el-table-column> --> |  | ||||||
|           <!-- <el-table-column |  | ||||||
|             label="从属关系" |  | ||||||
|             align="center" |  | ||||||
|             prop="subordinate" |  | ||||||
|             :show-overflow-tooltip="true" |  | ||||||
|           > |  | ||||||
|             <template #default="{row}">{{ ['','主账号','副帐号'][row.subordinate] }}</template> |  | ||||||
|           </el-table-column><el-table-column label="所属组id" align="center" prop="groupId" :formatter="groupIdFormat" width="100"> |  | ||||||
|             <template slot-scope="scope"> |  | ||||||
|               {{ groupIdFormat(scope.row) }} |  | ||||||
|             </template> |  | ||||||
|           </el-table-column> --> |  | ||||||
|           <el-table-column label="开启状态" align="center" prop="openStatus" :show-overflow-tooltip="true"> |           <el-table-column label="开启状态" align="center" prop="openStatus" :show-overflow-tooltip="true"> | ||||||
|             <template #default="{ row }"><el-tag size="mini" :type="['danger', 'success'][row.openStatus]">{{ |             <template #default="{ row }"><el-tag size="mini" :type="['danger', 'success'][row.openStatus]">{{ | ||||||
|               ['已关闭', '已开启'][row.openStatus] }}</el-tag></template> |               ['已关闭', '已开启'][row.openStatus] }}</el-tag></template> | ||||||
| @ -227,36 +185,32 @@ | |||||||
|             <el-form-item label="代码账号密码" prop="userPass"> |             <el-form-item label="代码账号密码" prop="userPass"> | ||||||
|               <el-input v-model="form.userPass" placeholder="代码账号密码" /> |               <el-input v-model="form.userPass" placeholder="代码账号密码" /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <!-- <el-form-item label="管理员id" prop="adminId"> |             <el-form-item label="反向下单" prop="reverseStatus"> | ||||||
|                                         <el-input v-model="form.adminId" placeholder="管理员id" |               <el-radio-group v-model="form.reverseStatus"> | ||||||
|                                                       /> |                 <el-radio :label="1">开启</el-radio> | ||||||
|                                     </el-form-item> --> |                 <el-radio :label="2">关闭</el-radio> | ||||||
|             <!-- <el-form-item label="归属" prop="affiliation"> |  | ||||||
|               <el-radio-group v-model="form.affiliation"> |  | ||||||
|                 <el-radio :label="3">现货合约</el-radio> |  | ||||||
|                 <el-radio :label="1">现货</el-radio> |  | ||||||
|                 <el-radio :label="2">合约</el-radio> |  | ||||||
|               </el-radio-group> |               </el-radio-group> | ||||||
|             </el-form-item> --> |             </el-form-item> | ||||||
|             <!-- <el-form-item label="是否超管可见" prop="adminShow"> |             <el-form-item v-if="form.reverseStatus === 1" label="反向API" prop="reverseApiId"> | ||||||
|                                         <el-input v-model="form.adminShow" placeholder="是否超管可见" |               <el-select | ||||||
|                                                       /> |                 v-model="form.reverseApiId" | ||||||
|                                     </el-form-item> --> |                 style="width: 100%;" | ||||||
|             <!-- <el-form-item label="允许下单的方向" prop="site"> |                 placeholder="请选择反向API" | ||||||
|               <el-radio-group v-model="form.site"> |                 clearable | ||||||
|                 <el-radio label="3">多空</el-radio> |                 filterable | ||||||
|                 <el-radio label="1">多</el-radio> |                 size="small" | ||||||
|                 <el-radio label="2">空</el-radio> |               > | ||||||
|               </el-radio-group> |                 <el-option | ||||||
|             </el-form-item> --> |                   v-for="dict in reverseApiList" | ||||||
|             <!-- <el-form-item label="从属关系" prop="subordinate"> |                   :key="'reverseApiId' + dict.id" | ||||||
|                                         <el-input v-model="form.subordinate" placeholder="从属关系" |                   :label="dict.apiName" | ||||||
|                                                       /> |                   :value="dict.id" | ||||||
|                                     </el-form-item> --> |                 /> | ||||||
|             <!-- <el-form-item label="所属组id" prop="groupId"> |               </el-select> | ||||||
|                                         <el-input v-model="form.groupId" placeholder="所属组id" |             </el-form-item> | ||||||
|                                                       /> |             <el-form-item v-if="form.reverseStatus === 1" label="下单比例(%)" prop="orderProportion"> | ||||||
|                                     </el-form-item> --> |               <el-input-number v-model="form.orderProportion" :min="1" :step="0.1" placeholder="下单比例" /> | ||||||
|  |             </el-form-item> | ||||||
|             <el-form-item label="开启状态" prop="openStatus"> |             <el-form-item label="开启状态" prop="openStatus"> | ||||||
|               <el-radio-group v-model="form.openStatus"> |               <el-radio-group v-model="form.openStatus"> | ||||||
|                 <el-radio :label="1">开启</el-radio> |                 <el-radio :label="1">开启</el-radio> | ||||||
| @ -275,7 +229,7 @@ | |||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
| import { addLineApiUser, delLineApiUser, getLineApiUser, listLineApiUser, updateLineApiUser } from '@/api/admin/line-api-user' | import { addLineApiUser, delLineApiUser, getLineApiUser, listLineApiUser, updateLineApiUser, getReverseOptions } from '@/api/admin/line-api-user' | ||||||
|  |  | ||||||
| import { listLineUser } from '@/api/admin/line-user' | import { listLineUser } from '@/api/admin/line-user' | ||||||
| // import { listLineApiGroup } from '@/api/admin/line-api-group' | // import { listLineApiGroup } from '@/api/admin/line-api-group' | ||||||
| @ -307,7 +261,7 @@ export default { | |||||||
|       // 关系表类型 |       // 关系表类型 | ||||||
|       userIdOptions: [], |       userIdOptions: [], | ||||||
|       groupIdOptions: [], |       groupIdOptions: [], | ||||||
|  |       reverseApiList: [], // 反向API列表 | ||||||
|       // 查询参数 |       // 查询参数 | ||||||
|       queryParams: { |       queryParams: { | ||||||
|         pageIndex: 1, |         pageIndex: 1, | ||||||
| @ -319,7 +273,10 @@ export default { | |||||||
|       }, |       }, | ||||||
|       // 表单校验 |       // 表单校验 | ||||||
|       rules: { |       rules: { | ||||||
|         exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }] |         exchangeType: [{ required: true, message: '交易所不能为空', trigger: 'blur' }], | ||||||
|  |         reverseStatus: [{ required: true, message: '反向下单不能为空', trigger: 'blur' }], | ||||||
|  |         reverseApiId: [{ required: true, message: '反向下单API不能为空', trigger: 'blur' }], | ||||||
|  |         orderProportion: [{ required: true, message: '下单比例不能为空', trigger: 'blur' }] | ||||||
|       }, |       }, | ||||||
|       exchangeTypes: [] |       exchangeTypes: [] | ||||||
|     } |     } | ||||||
| @ -337,6 +294,17 @@ export default { | |||||||
|     exchangeTypeFormat(row) { |     exchangeTypeFormat(row) { | ||||||
|       return this.selectDictLabel(this.exchangeTypes || [], row.exchangeType) |       return this.selectDictLabel(this.exchangeTypes || [], row.exchangeType) | ||||||
|     }, |     }, | ||||||
|  |     // 获取可用反单api | ||||||
|  |     getReverseOptions(params) { | ||||||
|  |       return getReverseOptions(params).then(response => { | ||||||
|  |         if (response && response.code === 200) { | ||||||
|  |           this.reverseApiList = response.data | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |         .catch(error => { | ||||||
|  |           console.log(error) | ||||||
|  |         }) | ||||||
|  |     }, | ||||||
|     /** 查询参数列表 */ |     /** 查询参数列表 */ | ||||||
|     getList() { |     getList() { | ||||||
|       this.loading = true |       this.loading = true | ||||||
| @ -370,7 +338,10 @@ export default { | |||||||
|         site: '3', |         site: '3', | ||||||
|         subordinate: '0', |         subordinate: '0', | ||||||
|         groupId: undefined, |         groupId: undefined, | ||||||
|         openStatus: 1 |         openStatus: 1, | ||||||
|  |         reverseStatus: 1, | ||||||
|  |         reverseApiId: undefined, | ||||||
|  |         orderProportion: undefined | ||||||
|       } |       } | ||||||
|       this.resetForm('form') |       this.resetForm('form') | ||||||
|     }, |     }, | ||||||
| @ -432,12 +403,18 @@ export default { | |||||||
|         this.open = true |         this.open = true | ||||||
|         this.title = '修改api用户管理' |         this.title = '修改api用户管理' | ||||||
|         this.isEdit = true |         this.isEdit = true | ||||||
|  |  | ||||||
|  |         this.getReverseOptions({ apiId: this.form.reverseApiId, id: id }) | ||||||
|       }) |       }) | ||||||
|     }, |     }, | ||||||
|     /** 提交按钮 */ |     /** 提交按钮 */ | ||||||
|     submitForm: function() { |     submitForm: function() { | ||||||
|       this.$refs['form'].validate(valid => { |       this.$refs['form'].validate(valid => { | ||||||
|         if (valid) { |         if (valid) { | ||||||
|  |           if (!this.form.reverseApiId) { | ||||||
|  |             this.form.reverseApiId = 0 | ||||||
|  |           } | ||||||
|  |  | ||||||
|           if (this.form.id !== undefined) { |           if (this.form.id !== undefined) { | ||||||
|             updateLineApiUser(this.form).then(response => { |             updateLineApiUser(this.form).then(response => { | ||||||
|               if (response.code === 200) { |               if (response.code === 200) { | ||||||
|  | |||||||
							
								
								
									
										140
									
								
								src/views/admin/line-reverse-position/detail.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								src/views/admin/line-reverse-position/detail.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,140 @@ | |||||||
|  | <template> | ||||||
|  |  | ||||||
|  |   <!-- 添加或修改对话框 --> | ||||||
|  |   <el-dialog :title="title" :visible.sync="open" width="500px" @close="handleClose"> | ||||||
|  |     <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||||
|  |  | ||||||
|  |       <el-form-item label="api_id" prop="apiId"> | ||||||
|  |         <el-select v-model="form.apiId" placeholder="请选择"> | ||||||
|  |           <el-option v-for="dict in apiIdOptions" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||||
|  |         </el-select> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="反单api_id" prop="reverseApiId"> | ||||||
|  |         <el-select v-model="form.reverseApiId" placeholder="请选择"> | ||||||
|  |           <el-option | ||||||
|  |             v-for="dict in reverseApiIdOptions" | ||||||
|  |             :key="dict.value" | ||||||
|  |             :label="dict.label" | ||||||
|  |             :value="dict.value" | ||||||
|  |           /> | ||||||
|  |         </el-select> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="反单仓位" prop="reverseAmount"> | ||||||
|  |         <el-input v-model="form.reverseAmount" placeholder="反单仓位" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="买卖方向 BUY SELL" prop="side"> | ||||||
|  |         <el-select v-model="form.side" placeholder="请选择"> | ||||||
|  |           <el-option v-for="dict in sideOptions" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||||
|  |         </el-select> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="持仓方向 LONG SHORT" prop="positionSide"> | ||||||
|  |         <el-select v-model="form.positionSide" placeholder="请选择"> | ||||||
|  |           <el-option | ||||||
|  |             v-for="dict in positionSideOptions" | ||||||
|  |             :key="dict.value" | ||||||
|  |             :label="dict.label" | ||||||
|  |             :value="dict.value" | ||||||
|  |           /> | ||||||
|  |         </el-select> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="交易对" prop="symbol"> | ||||||
|  |         <el-input v-model="form.symbol" placeholder="交易对" /> | ||||||
|  |       </el-form-item> | ||||||
|  |       <el-form-item label="仓位状态 1-已开仓 2-已平仓" prop="status"> | ||||||
|  |         <el-input v-model="form.status" placeholder="仓位状态 1-已开仓 2-已平仓" /> | ||||||
|  |       </el-form-item> | ||||||
|  |     </el-form> | ||||||
|  |     <div slot="footer" class="dialog-footer"> | ||||||
|  |       <el-button type="primary" @click="submitForm">确 定</el-button> | ||||||
|  |       <el-button @click="cancel">取 消</el-button> | ||||||
|  |     </div> | ||||||
|  |   </el-dialog> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: 'Detail', | ||||||
|  |   props: { | ||||||
|  |     open: { | ||||||
|  |       type: Boolean, | ||||||
|  |       default: false | ||||||
|  |     }, | ||||||
|  |     title: { | ||||||
|  |       type: String, | ||||||
|  |       default: '添加' | ||||||
|  |     }, | ||||||
|  |     form: { | ||||||
|  |       type: Object, | ||||||
|  |       default: () => ({}) | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |  | ||||||
|  |       // 表单校验 | ||||||
|  |       rules: { | ||||||
|  |         apiId: [{ required: true, message: 'api_id不能为空', trigger: 'blur' }], | ||||||
|  |         reverseApiId: [{ required: true, message: '反单api_id不能为空', trigger: 'blur' }], | ||||||
|  |         side: [{ required: true, message: '买卖方向 BUY SELL不能为空', trigger: 'blur' }], | ||||||
|  |         positionSide: [{ required: true, message: '持仓方向 LONG SHORT不能为空', trigger: 'blur' }], | ||||||
|  |         symbol: [{ required: true, message: '交易对不能为空', trigger: 'blur' }] | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |  | ||||||
|  |     // 取消按钮 | ||||||
|  |     cancel() { | ||||||
|  |       this.open = false | ||||||
|  |       this.reset() | ||||||
|  |     }, | ||||||
|  |     // 表单重置 | ||||||
|  |     reset() { | ||||||
|  |       this.form = { | ||||||
|  |  | ||||||
|  |         id: undefined, | ||||||
|  |         apiId: undefined, | ||||||
|  |         reverseApiId: undefined, | ||||||
|  |         reverseAmount: undefined, | ||||||
|  |         side: undefined, | ||||||
|  |         positionSide: undefined, | ||||||
|  |         symbol: undefined, | ||||||
|  |         status: undefined | ||||||
|  |       } | ||||||
|  |       this.resetForm('form') | ||||||
|  |     }, | ||||||
|  |     /** 提交按钮 */ | ||||||
|  |     submitForm: function() { | ||||||
|  |       this.$refs['form'].validate(valid => { | ||||||
|  |         if (valid) { | ||||||
|  |           // if (this.form.id !== undefined) { | ||||||
|  |           //     updateLineReversePosition(this.form).then(response => { | ||||||
|  |           //         if (response.code === 200) { | ||||||
|  |           //             this.msgSuccess(response.msg) | ||||||
|  |           //             this.handleClose() | ||||||
|  |           //         } else { | ||||||
|  |           //             this.msgError(response.msg) | ||||||
|  |           //         } | ||||||
|  |           //     }) | ||||||
|  |           // } else { | ||||||
|  |           //     addLineReversePosition(this.form).then(response => { | ||||||
|  |           //         if (response.code === 200) { | ||||||
|  |           //             this.msgSuccess(response.msg) | ||||||
|  |           //             this.handleClose() | ||||||
|  |           //         } else { | ||||||
|  |           //             this.msgError(response.msg) | ||||||
|  |           //         } | ||||||
|  |           //     }) | ||||||
|  |           // } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     handleClose() { | ||||||
|  |       this.$emit('update:open', false) | ||||||
|  |       this.$emit('close') | ||||||
|  |       this.reset() | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
							
								
								
									
										306
									
								
								src/views/admin/line-reverse-position/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										306
									
								
								src/views/admin/line-reverse-position/index.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,306 @@ | |||||||
|  | <template> | ||||||
|  |   <BasicLayout> | ||||||
|  |     <template #wrapper> | ||||||
|  |       <el-card class="box-card"> | ||||||
|  |         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||||
|  |           <el-form-item label="api_id" prop="apiId"><el-input | ||||||
|  |             v-model="queryParams.apiId" | ||||||
|  |             placeholder="请输入api_id" | ||||||
|  |             clearable | ||||||
|  |             size="small" | ||||||
|  |             @keyup.enter.native="handleQuery" | ||||||
|  |           /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="反单api_id" prop="reverseApiId"><el-input | ||||||
|  |             v-model="queryParams.reverseApiId" | ||||||
|  |             placeholder="请输入反单api_id" | ||||||
|  |             clearable | ||||||
|  |             size="small" | ||||||
|  |             @keyup.enter.native="handleQuery" | ||||||
|  |           /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="买卖方向 BUY SELL" prop="side"><el-input | ||||||
|  |             v-model="queryParams.side" | ||||||
|  |             placeholder="请输入买卖方向 BUY SELL" | ||||||
|  |             clearable | ||||||
|  |             size="small" | ||||||
|  |             @keyup.enter.native="handleQuery" | ||||||
|  |           /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="持仓方向 LONG SHORT" prop="positionSide"><el-input | ||||||
|  |             v-model="queryParams.positionSide" | ||||||
|  |             placeholder="请输入持仓方向 LONG SHORT" | ||||||
|  |             clearable | ||||||
|  |             size="small" | ||||||
|  |             @keyup.enter.native="handleQuery" | ||||||
|  |           /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="交易对" prop="symbol"><el-input | ||||||
|  |             v-model="queryParams.symbol" | ||||||
|  |             placeholder="请输入交易对" | ||||||
|  |             clearable | ||||||
|  |             size="small" | ||||||
|  |             @keyup.enter.native="handleQuery" | ||||||
|  |           /> | ||||||
|  |           </el-form-item> | ||||||
|  |  | ||||||
|  |           <el-form-item> | ||||||
|  |             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||||
|  |             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||||
|  |           </el-form-item> | ||||||
|  |         </el-form> | ||||||
|  |  | ||||||
|  |         <el-row :gutter="10" class="mb8"> | ||||||
|  |           <el-col :span="1.5"> | ||||||
|  |             <el-button | ||||||
|  |               v-permisaction="['admin:lineReversePosition:add']" | ||||||
|  |               type="primary" | ||||||
|  |               icon="el-icon-plus" | ||||||
|  |               size="mini" | ||||||
|  |               @click="handleAdd" | ||||||
|  |             >新增 | ||||||
|  |             </el-button> | ||||||
|  |           </el-col> | ||||||
|  |           <el-col :span="1.5"> | ||||||
|  |             <el-button | ||||||
|  |               v-permisaction="['admin:lineReversePosition:edit']" | ||||||
|  |               type="success" | ||||||
|  |               icon="el-icon-edit" | ||||||
|  |               size="mini" | ||||||
|  |               :disabled="single" | ||||||
|  |               @click="handleUpdate" | ||||||
|  |             >修改 | ||||||
|  |             </el-button> | ||||||
|  |           </el-col> | ||||||
|  |           <el-col :span="1.5"> | ||||||
|  |             <el-button | ||||||
|  |               v-permisaction="['admin:lineReversePosition:remove']" | ||||||
|  |               type="danger" | ||||||
|  |               icon="el-icon-delete" | ||||||
|  |               size="mini" | ||||||
|  |               :disabled="multiple" | ||||||
|  |               @click="handleDelete" | ||||||
|  |             >删除 | ||||||
|  |             </el-button> | ||||||
|  |           </el-col> | ||||||
|  |         </el-row> | ||||||
|  |  | ||||||
|  |         <el-table v-loading="loading" :data="lineReversePositionList" @selection-change="handleSelectionChange"> | ||||||
|  |           <el-table-column type="selection" width="55" align="center" /><el-table-column | ||||||
|  |             label="api_id" | ||||||
|  |             align="center" | ||||||
|  |             prop="apiId" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="反单api_id" | ||||||
|  |             align="center" | ||||||
|  |             prop="reverseApiId" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="反单仓位" | ||||||
|  |             align="center" | ||||||
|  |             prop="reverseAmount" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="买卖方向 BUY SELL" | ||||||
|  |             align="center" | ||||||
|  |             prop="side" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="持仓方向 LONG SHORT" | ||||||
|  |             align="center" | ||||||
|  |             prop="positionSide" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="交易对" | ||||||
|  |             align="center" | ||||||
|  |             prop="symbol" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /><el-table-column | ||||||
|  |             label="仓位状态 1-已开仓 2-已平仓" | ||||||
|  |             align="center" | ||||||
|  |             prop="status" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /> | ||||||
|  |           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||||
|  |             <template slot-scope="scope"> | ||||||
|  |               <el-popconfirm | ||||||
|  |                 class="delete-popconfirm" | ||||||
|  |                 title="确认要修改吗?" | ||||||
|  |                 confirm-button-text="修改" | ||||||
|  |                 @confirm="handleUpdate(scope.row)" | ||||||
|  |               > | ||||||
|  |                 <el-button | ||||||
|  |                   slot="reference" | ||||||
|  |                   v-permisaction="['admin:lineReversePosition:edit']" | ||||||
|  |                   size="mini" | ||||||
|  |                   type="text" | ||||||
|  |                   icon="el-icon-edit" | ||||||
|  |                 >修改 | ||||||
|  |                 </el-button> | ||||||
|  |               </el-popconfirm> | ||||||
|  |               <el-popconfirm | ||||||
|  |                 class="delete-popconfirm" | ||||||
|  |                 title="确认要删除吗?" | ||||||
|  |                 confirm-button-text="删除" | ||||||
|  |                 @confirm="handleDelete(scope.row)" | ||||||
|  |               > | ||||||
|  |                 <el-button | ||||||
|  |                   slot="reference" | ||||||
|  |                   v-permisaction="['admin:lineReversePosition:remove']" | ||||||
|  |                   size="mini" | ||||||
|  |                   type="text" | ||||||
|  |                   icon="el-icon-delete" | ||||||
|  |                 >删除 | ||||||
|  |                 </el-button> | ||||||
|  |               </el-popconfirm> | ||||||
|  |             </template> | ||||||
|  |           </el-table-column> | ||||||
|  |         </el-table> | ||||||
|  |  | ||||||
|  |         <pagination | ||||||
|  |           v-show="total > 0" | ||||||
|  |           :total="total" | ||||||
|  |           :page.sync="queryParams.pageIndex" | ||||||
|  |           :limit.sync="queryParams.pageSize" | ||||||
|  |           @pagination="getList" | ||||||
|  |         /> | ||||||
|  |  | ||||||
|  |         <detail :open.sync="open" :title="title" :form="form" :is-edit="isEdit" @close="handleClose" /> | ||||||
|  |       </el-card> | ||||||
|  |     </template> | ||||||
|  |   </BasicLayout> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { delLineReversePosition, listLineReversePosition, getLineReversePosition } from '@/api/admin/line-reverse-position' | ||||||
|  | import Detail from './detail.vue' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: 'LineReversePosition', | ||||||
|  |   components: { | ||||||
|  |     Detail | ||||||
|  |   }, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       // 遮罩层 | ||||||
|  |       loading: true, | ||||||
|  |       // 选中数组 | ||||||
|  |       ids: [], | ||||||
|  |       // 非单个禁用 | ||||||
|  |       single: true, | ||||||
|  |       // 非多个禁用 | ||||||
|  |       multiple: true, | ||||||
|  |       // 总条数 | ||||||
|  |       total: 0, | ||||||
|  |       // 弹出层标题 | ||||||
|  |       title: '', | ||||||
|  |       // 是否显示弹出层 | ||||||
|  |       open: false, | ||||||
|  |       isEdit: false, | ||||||
|  |       // 类型数据字典 | ||||||
|  |       typeOptions: [], | ||||||
|  |       lineReversePositionList: [], | ||||||
|  |       // 关系表类型 | ||||||
|  |  | ||||||
|  |       // 查询参数 | ||||||
|  |       queryParams: { | ||||||
|  |         pageIndex: 1, | ||||||
|  |         pageSize: 10, | ||||||
|  |         apiId: undefined, | ||||||
|  |         reverseApiId: undefined, | ||||||
|  |         side: undefined, | ||||||
|  |         positionSide: undefined, | ||||||
|  |         symbol: undefined | ||||||
|  |  | ||||||
|  |       }, | ||||||
|  |       // 表单参数 | ||||||
|  |       form: { | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   created() { | ||||||
|  |     this.getList() | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     /** 查询参数列表 */ | ||||||
|  |     getList() { | ||||||
|  |       this.loading = true | ||||||
|  |       listLineReversePosition(this.addDateRange(this.queryParams, this.dateRange)).then(response => { | ||||||
|  |         this.lineReversePositionList = response.data.list | ||||||
|  |         this.total = response.data.count | ||||||
|  |         this.loading = false | ||||||
|  |       } | ||||||
|  |       ) | ||||||
|  |     }, | ||||||
|  |     getImgList: function() { | ||||||
|  |       this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl | ||||||
|  |     }, | ||||||
|  |     fileClose: function() { | ||||||
|  |       this.fileOpen = false | ||||||
|  |     }, | ||||||
|  |     // 关系 | ||||||
|  |     // 文件 | ||||||
|  |     /** 搜索按钮操作 */ | ||||||
|  |     handleQuery() { | ||||||
|  |       this.queryParams.pageIndex = 1 | ||||||
|  |       this.getList() | ||||||
|  |     }, | ||||||
|  |     /** 重置按钮操作 */ | ||||||
|  |     resetQuery() { | ||||||
|  |       this.dateRange = [] | ||||||
|  |       this.resetForm('queryForm') | ||||||
|  |       this.handleQuery() | ||||||
|  |     }, | ||||||
|  |     /** 新增按钮操作 */ | ||||||
|  |     handleAdd() { | ||||||
|  |       this.reset() | ||||||
|  |       this.open = true | ||||||
|  |       this.title = '添加反单管理-仓位' | ||||||
|  |       this.isEdit = false | ||||||
|  |     }, | ||||||
|  |     // 多选框选中数据 | ||||||
|  |     handleSelectionChange(selection) { | ||||||
|  |       this.ids = selection.map(item => item.id) | ||||||
|  |       this.single = selection.length !== 1 | ||||||
|  |       this.multiple = !selection.length | ||||||
|  |     }, | ||||||
|  |     /** 修改按钮操作 */ | ||||||
|  |     handleUpdate(row) { | ||||||
|  |       this.reset() | ||||||
|  |       const id = | ||||||
|  |                 row.id || this.ids | ||||||
|  |       getLineReversePosition(id).then(response => { | ||||||
|  |         this.form = response.data | ||||||
|  |         this.open = true | ||||||
|  |         this.title = '修改反单管理-仓位' | ||||||
|  |         this.isEdit = true | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     handleClose() { | ||||||
|  |       this.getList() | ||||||
|  |     }, | ||||||
|  |     /** 删除按钮操作 */ | ||||||
|  |     handleDelete(row) { | ||||||
|  |       var Ids = (row.id && [row.id]) || this.ids | ||||||
|  |  | ||||||
|  |       this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', { | ||||||
|  |         confirmButtonText: '确定', | ||||||
|  |         cancelButtonText: '取消', | ||||||
|  |         type: 'warning' | ||||||
|  |       }).then(function() { | ||||||
|  |         return delLineReversePosition({ 'ids': Ids }) | ||||||
|  |       }).then((response) => { | ||||||
|  |         if (response.code === 200) { | ||||||
|  |           this.msgSuccess(response.msg) | ||||||
|  |           this.open = false | ||||||
|  |           this.getList() | ||||||
|  |         } else { | ||||||
|  |           this.msgError(response.msg) | ||||||
|  |         } | ||||||
|  |       }).catch(function() { | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
							
								
								
									
										331
									
								
								src/views/admin/line-reverse-setting/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										331
									
								
								src/views/admin/line-reverse-setting/index.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,331 @@ | |||||||
|  | <template> | ||||||
|  |   <BasicLayout> | ||||||
|  |     <template #wrapper> | ||||||
|  |       <el-card class="box-card"> | ||||||
|  |         <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px"> | ||||||
|  |  | ||||||
|  |           <el-form-item> | ||||||
|  |             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||||
|  |             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||||
|  |           </el-form-item> | ||||||
|  |         </el-form> | ||||||
|  |  | ||||||
|  |         <el-row :gutter="10" class="mb8"> | ||||||
|  |           <!-- <el-col :span="1.5"> | ||||||
|  |                         <el-button v-permisaction="['admin:lineReverseSetting:add']" type="primary" icon="el-icon-plus" | ||||||
|  |                             size="mini" @click="handleAdd">新增 | ||||||
|  |                         </el-button> | ||||||
|  |                     </el-col> --> | ||||||
|  |           <el-col :span="1.5"> | ||||||
|  |             <el-button | ||||||
|  |               v-permisaction="['admin:lineReverseSetting:edit']" | ||||||
|  |               type="success" | ||||||
|  |               icon="el-icon-edit" | ||||||
|  |               size="mini" | ||||||
|  |               :disabled="single" | ||||||
|  |               @click="handleUpdate" | ||||||
|  |             >修改 | ||||||
|  |             </el-button> | ||||||
|  |           </el-col> | ||||||
|  |           <!-- <el-col :span="1.5"> | ||||||
|  |                         <el-button v-permisaction="['admin:lineReverseSetting:remove']" type="danger" | ||||||
|  |                             icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除 | ||||||
|  |                         </el-button> | ||||||
|  |                     </el-col> --> | ||||||
|  |         </el-row> | ||||||
|  |  | ||||||
|  |         <el-table v-loading="loading" :data="lineReverseSettingList" @selection-change="handleSelectionChange"> | ||||||
|  |           <el-table-column type="selection" width="55" align="center" /><el-table-column | ||||||
|  |             label="反单下单类型" | ||||||
|  |             align="center" | ||||||
|  |             prop="reverseOrderType" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           > | ||||||
|  |             <template slot-scope="scope"> | ||||||
|  |               {{ reverseOrderTypeFormat(scope.row.reverseOrderType) }} | ||||||
|  |             </template> | ||||||
|  |           </el-table-column> | ||||||
|  |           <el-table-column | ||||||
|  |             label="溢价百分比" | ||||||
|  |             align="center" | ||||||
|  |             prop="reversePremiumRatio" | ||||||
|  |             :show-overflow-tooltip="true" | ||||||
|  |           /> | ||||||
|  |           <el-table-column label="止盈百分比" align="center" prop="takeProfitRatio" /> | ||||||
|  |           <el-table-column label="止损百分比" align="center" prop="stopLossRatio" /> | ||||||
|  |           <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||||
|  |             <template slot-scope="scope"> | ||||||
|  |               <el-popconfirm | ||||||
|  |                 class="delete-popconfirm" | ||||||
|  |                 title="确认要修改吗?" | ||||||
|  |                 confirm-button-text="修改" | ||||||
|  |                 @confirm="handleUpdate(scope.row)" | ||||||
|  |               > | ||||||
|  |                 <el-button | ||||||
|  |                   slot="reference" | ||||||
|  |                   v-permisaction="['admin:lineReverseSetting:edit']" | ||||||
|  |                   size="mini" | ||||||
|  |                   type="text" | ||||||
|  |                   icon="el-icon-edit" | ||||||
|  |                 >修改 | ||||||
|  |                 </el-button> | ||||||
|  |               </el-popconfirm> | ||||||
|  |               <!-- <el-popconfirm class="delete-popconfirm" title="确认要删除吗?" confirm-button-text="删除" | ||||||
|  |                                 @confirm="handleDelete(scope.row)"> | ||||||
|  |                                 <el-button slot="reference" v-permisaction="['admin:lineReverseSetting:remove']" | ||||||
|  |                                     size="mini" type="text" icon="el-icon-delete">删除 | ||||||
|  |                                 </el-button> | ||||||
|  |                             </el-popconfirm> --> | ||||||
|  |             </template> | ||||||
|  |           </el-table-column> | ||||||
|  |         </el-table> | ||||||
|  |  | ||||||
|  |         <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="600px"> | ||||||
|  |           <el-form ref="form" :model="form" :rules="rules" label-width="120px"> | ||||||
|  |  | ||||||
|  |             <el-form-item label="反单下单类型" prop="reverseOrderType"> | ||||||
|  |               <el-radio-group v-model="form.reverseOrderType"> | ||||||
|  |                 <el-radio | ||||||
|  |                   v-for="dict in reverseOrderTypeOptions" | ||||||
|  |                   :key="dict.value" | ||||||
|  |                   :label="dict.value" | ||||||
|  |                 >{{ dict.label | ||||||
|  |                 }}</el-radio> | ||||||
|  |               </el-radio-group> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="溢价百分比" prop="reversePremiumRatio"> | ||||||
|  |               <el-input v-model="form.reversePremiumRatio" placeholder="溢价百分比" /> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="止盈百分比" prop="takeProfitRatio"> | ||||||
|  |               <el-input v-model="form.takeProfitRatio" placeholder="止盈百分比" /> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="止损百分比" prop="stopLossRatio"> | ||||||
|  |               <el-input v-model="form.stopLossRatio" placeholder="止损百分比" /> | ||||||
|  |             </el-form-item> | ||||||
|  |           </el-form> | ||||||
|  |           <div slot="footer" class="dialog-footer"> | ||||||
|  |             <el-button type="primary" @click="submitForm">确 定</el-button> | ||||||
|  |             <el-button @click="cancel">取 消</el-button> | ||||||
|  |           </div> | ||||||
|  |         </el-dialog> | ||||||
|  |       </el-card> | ||||||
|  |     </template> | ||||||
|  |   </BasicLayout> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { addLineReverseSetting, getLineReverseSetting, listLineReverseSetting, updateLineReverseSetting } from '@/api/admin/line-reverse-setting' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: 'LineReverseSetting', | ||||||
|  |   components: { | ||||||
|  |   }, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       // 遮罩层 | ||||||
|  |       loading: true, | ||||||
|  |       // 选中数组 | ||||||
|  |       ids: [], | ||||||
|  |       // 非单个禁用 | ||||||
|  |       single: true, | ||||||
|  |       // 非多个禁用 | ||||||
|  |       multiple: true, | ||||||
|  |       // 总条数 | ||||||
|  |       total: 0, | ||||||
|  |       // 弹出层标题 | ||||||
|  |       title: '', | ||||||
|  |       // 是否显示弹出层 | ||||||
|  |       open: false, | ||||||
|  |       isEdit: false, | ||||||
|  |       // 类型数据字典 | ||||||
|  |       typeOptions: [], | ||||||
|  |       reverseOrderTypeOptions: [{ | ||||||
|  |         value: 'LIMIT', | ||||||
|  |         label: '限价' | ||||||
|  |       }, { | ||||||
|  |         value: 'MARKET', | ||||||
|  |         label: '市价' | ||||||
|  |       }], | ||||||
|  |       lineReverseSettingList: [], | ||||||
|  |  | ||||||
|  |       // 关系表类型 | ||||||
|  |  | ||||||
|  |       // 查询参数 | ||||||
|  |       queryParams: { | ||||||
|  |         pageIndex: 1, | ||||||
|  |         pageSize: 10 | ||||||
|  |  | ||||||
|  |       }, | ||||||
|  |       // 表单参数 | ||||||
|  |       form: { | ||||||
|  |       }, | ||||||
|  |       // 表单校验 | ||||||
|  |       rules: { | ||||||
|  |         reverseOrderType: [ | ||||||
|  |           { required: true, message: '请选择反单下单类型', trigger: 'blur' } | ||||||
|  |         ], | ||||||
|  |         reversePremiumRatio: [ | ||||||
|  |           { required: true, message: '溢价百分比不能为空', trigger: 'blur' }, | ||||||
|  |           { validator: this.validatePositiveNumber, trigger: 'blur' } | ||||||
|  |         ], | ||||||
|  |         takeProfitRatio: [ | ||||||
|  |           { required: true, message: '止盈百分比不能为空', trigger: 'blur' }, | ||||||
|  |           { validator: this.validatePositiveNumber, trigger: 'blur' } | ||||||
|  |         ], | ||||||
|  |         stopLossRatio: [ | ||||||
|  |           { required: true, message: '止损百分比不能为空', trigger: 'blur' }, | ||||||
|  |           { validator: this.validatePositiveNumber, trigger: 'blur' } | ||||||
|  |         ] | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   created() { | ||||||
|  |     this.getList() | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     validatePositiveNumber(rule, value, callback) { | ||||||
|  |       if (value === '' || value === null || value === undefined) { | ||||||
|  |         return callback(new Error('不能为空')) | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       const str = value.toString().trim() | ||||||
|  |  | ||||||
|  |       // 只允许数字(整数或小数),不含非法字符 | ||||||
|  |       // 可为 "0", "0.1", "1", "10.23", 但不能是 "0.2x", "1abc", "-1" | ||||||
|  |       const numberPattern = /^(0|[1-9]\d*)(\.\d+)?$/ | ||||||
|  |       if (!numberPattern.test(str)) { | ||||||
|  |         return callback(new Error('请输入合法的非负数字')) | ||||||
|  |       } | ||||||
|  |       callback() | ||||||
|  |     }, | ||||||
|  |     reverseOrderTypeFormat(orderType) { | ||||||
|  |       const data = this.reverseOrderTypeOptions.find(item => item.value === orderType) | ||||||
|  |       return data ? data.label : '' | ||||||
|  |     }, | ||||||
|  |     /** 查询参数列表 */ | ||||||
|  |     getList() { | ||||||
|  |       this.loading = true | ||||||
|  |       listLineReverseSetting(this.addDateRange(this.queryParams, this.dateRange)).then(response => { | ||||||
|  |         this.lineReverseSettingList = response.data.list | ||||||
|  |         this.total = response.data.count | ||||||
|  |         this.loading = false | ||||||
|  |       } | ||||||
|  |       ) | ||||||
|  |     }, | ||||||
|  |     // 取消按钮 | ||||||
|  |     cancel() { | ||||||
|  |       this.open = false | ||||||
|  |       this.reset() | ||||||
|  |     }, | ||||||
|  |     // 表单重置 | ||||||
|  |     reset() { | ||||||
|  |       this.form = { | ||||||
|  |  | ||||||
|  |         id: undefined, | ||||||
|  |         reverseOrderType: undefined, | ||||||
|  |         reversePremiumRatio: undefined | ||||||
|  |       } | ||||||
|  |       this.resetForm('form') | ||||||
|  |     }, | ||||||
|  |     getImgList: function() { | ||||||
|  |       this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl | ||||||
|  |     }, | ||||||
|  |     // 关系 | ||||||
|  |     // 文件 | ||||||
|  |     /** 搜索按钮操作 */ | ||||||
|  |     handleQuery() { | ||||||
|  |       this.queryParams.pageIndex = 1 | ||||||
|  |       this.getList() | ||||||
|  |     }, | ||||||
|  |     /** 重置按钮操作 */ | ||||||
|  |     resetQuery() { | ||||||
|  |       this.dateRange = [] | ||||||
|  |       this.resetForm('queryForm') | ||||||
|  |       this.handleQuery() | ||||||
|  |     }, | ||||||
|  |     /** 新增按钮操作 */ | ||||||
|  |     handleAdd() { | ||||||
|  |       this.reset() | ||||||
|  |       this.open = true | ||||||
|  |       this.title = '添加反单下单配置' | ||||||
|  |       this.isEdit = false | ||||||
|  |     }, | ||||||
|  |     // 多选框选中数据 | ||||||
|  |     handleSelectionChange(selection) { | ||||||
|  |       this.ids = selection.map(item => item.id) | ||||||
|  |       this.single = selection.length !== 1 | ||||||
|  |       this.multiple = !selection.length | ||||||
|  |     }, | ||||||
|  |     /** 修改按钮操作 */ | ||||||
|  |     handleUpdate(row) { | ||||||
|  |       this.reset() | ||||||
|  |       const id = | ||||||
|  |                 row.id || this.ids | ||||||
|  |       getLineReverseSetting(id).then(response => { | ||||||
|  |         this.form = response.data | ||||||
|  |         this.open = true | ||||||
|  |         this.title = '修改反单下单配置' | ||||||
|  |         this.isEdit = true | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     /** 提交按钮 */ | ||||||
|  |     submitForm: function() { | ||||||
|  |       this.$refs['form'].validate(valid => { | ||||||
|  |         if (valid) { | ||||||
|  |           if (this.form.id !== undefined) { | ||||||
|  |             updateLineReverseSetting(this.form).then(response => { | ||||||
|  |               if (response.code === 200) { | ||||||
|  |                 this.msgSuccess(response.msg) | ||||||
|  |                 this.open = false | ||||||
|  |                 this.getList() | ||||||
|  |               } else { | ||||||
|  |                 this.msgError(response.msg) | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |           } else { | ||||||
|  |             addLineReverseSetting(this.form).then(response => { | ||||||
|  |               if (response.code === 200) { | ||||||
|  |                 this.msgSuccess(response.msg) | ||||||
|  |                 this.open = false | ||||||
|  |                 this.getList() | ||||||
|  |               } else { | ||||||
|  |                 this.msgError(response.msg) | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |     /** 删除按钮操作 */ | ||||||
|  |     // handleDelete(row) { | ||||||
|  |     //     var Ids = (row.id && [row.id]) || this.ids | ||||||
|  |  | ||||||
|  |     //     this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', { | ||||||
|  |     //         confirmButtonText: '确定', | ||||||
|  |     //         cancelButtonText: '取消', | ||||||
|  |     //         type: 'warning' | ||||||
|  |     //     }).then(function () { | ||||||
|  |     //         return delLineReverseSetting({ 'ids': Ids }) | ||||||
|  |     //     }).then((response) => { | ||||||
|  |     //         if (response.code === 200) { | ||||||
|  |     //             this.msgSuccess(response.msg) | ||||||
|  |     //             this.open = false | ||||||
|  |     //             this.getList() | ||||||
|  |     //         } else { | ||||||
|  |     //             this.msgError(response.msg) | ||||||
|  |     //         } | ||||||
|  |     //     }).catch(function () { | ||||||
|  |     //     }) | ||||||
|  |     // } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
		Reference in New Issue
	
	Block a user