正在显示
10 个修改的文件
包含
763 行增加
和
27 行删除
src/api/RobotCabin.js
0 → 100644
src/api/RobotPoints.js
0 → 100644
| 1 | +import { axios } from '@/utils/request' | ||
| 2 | + | ||
| 3 | +export function getRobotPoints() { | ||
| 4 | + return axios({ | ||
| 5 | + url: '/robotPoints/tblRobotPoints/queryList', | ||
| 6 | + method: 'get', | ||
| 7 | + }) | ||
| 8 | +} | ||
| 9 | +export function getRobotGoCharge() { | ||
| 10 | + return axios({ | ||
| 11 | + url: '/robotPoints/tblRobotPoints/getRobotGoCharge', | ||
| 12 | + method: 'get', | ||
| 13 | + }) | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | + | ||
| 17 | +export function returnToCabin() { | ||
| 18 | + return axios({ | ||
| 19 | + url: '/robotPoints/tblRobotPoints/returnToCabin', | ||
| 20 | + method: 'get', | ||
| 21 | + }) | ||
| 22 | +} | ||
| 23 | +export function cancleRobotMove() { | ||
| 24 | + return axios({ | ||
| 25 | + url: '/robotPoints/tblRobotPoints/cancleMove', | ||
| 26 | + method: 'put', | ||
| 27 | + }) | ||
| 28 | +} |
src/assets/kaifangcang.png
0 → 100644
27.1 KB
src/assets/songwushangcang.png
0 → 100644
34.9 KB
| @@ -83,6 +83,7 @@ export const JeecgListMixin = { | @@ -83,6 +83,7 @@ export const JeecgListMixin = { | ||
| 83 | this.ipagination.current = 1; | 83 | this.ipagination.current = 1; |
| 84 | } | 84 | } |
| 85 | var params = this.getQueryParams();//查询条件 | 85 | var params = this.getQueryParams();//查询条件 |
| 86 | + console.log('params========',params) | ||
| 86 | this.loading = true; | 87 | this.loading = true; |
| 87 | getAction(this.url.list, params).then((res) => { | 88 | getAction(this.url.list, params).then((res) => { |
| 88 | if (res.success) { | 89 | if (res.success) { |
| @@ -41,6 +41,10 @@ | @@ -41,6 +41,10 @@ | ||
| 41 | <!-- 操作按钮区域 --> | 41 | <!-- 操作按钮区域 --> |
| 42 | <div class="table-operator"> | 42 | <div class="table-operator"> |
| 43 | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | 43 | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> |
| 44 | + <a-button @click="callRobot" type="primary" icon="reddit">机器人召唤送物</a-button> | ||
| 45 | + <a-button @click="callRobotReturnToCabin" type="primary" icon="api">机器人返回舱位点</a-button> | ||
| 46 | + <a-button @click="callRobotGoCharge" type="primary" icon="api">机器人返回充电桩</a-button> | ||
| 47 | + <!-- <a-button @click="callRobotMoveShow" type="primary" icon="api">机器人取消任务</a-button> --> | ||
| 44 | </div> | 48 | </div> |
| 45 | 49 | ||
| 46 | <!-- table区域-begin --> | 50 | <!-- table区域-begin --> |
| @@ -67,12 +71,125 @@ | @@ -67,12 +71,125 @@ | ||
| 67 | <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | 71 | <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> |
| 68 | <a>删除</a> | 72 | <a>删除</a> |
| 69 | </a-popconfirm> | 73 | </a-popconfirm> |
| 74 | + <!-- <a-divider type="vertical" /> | ||
| 75 | + <a @click="callRobot">召唤机器人</a> --> | ||
| 70 | </span> | 76 | </span> |
| 71 | </a-table> | 77 | </a-table> |
| 72 | </div> | 78 | </div> |
| 73 | - | ||
| 74 | <tbl-depot-in-modal ref="modalForm" @ok="modalFormOk"></tbl-depot-in-modal> | 79 | <tbl-depot-in-modal ref="modalForm" @ok="modalFormOk"></tbl-depot-in-modal> |
| 80 | + <!-- 召唤机器人送物 --> | ||
| 81 | + <a-modal v-model="showRobot" title="机器人任务" on-ok="handleOk" width="800px"> | ||
| 82 | + <template slot="footer"> | ||
| 83 | + <a-button key="back" @click="handleCancel"> | ||
| 84 | + 取消 | ||
| 85 | + </a-button> | ||
| 86 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk"> | ||
| 87 | + 确定 | ||
| 88 | + </a-button> | ||
| 89 | + </template> | ||
| 90 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 91 | + <a-row> | ||
| 92 | + <a-col :span="24"> | ||
| 93 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime" rule = "{ required: true, message: '请选择机器人!' }"> | ||
| 94 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 95 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id"> | ||
| 96 | + <img :src="item.img" style="float: left; height: 20px; margin-top: 2px; margin-right: 10px;"> | ||
| 97 | + <span style="float: left">{{ item.value }}</span> | ||
| 98 | + </a-select-option> | ||
| 99 | + </a-select> | ||
| 100 | + </a-form-model-item> | ||
| 101 | + </a-col> | ||
| 102 | + | ||
| 103 | + <a-col :span="24" v-if="model.robotName === 'SCSK08C0450100861'"> | ||
| 104 | + <a-form-model-item label="选择召唤点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 105 | + <a-select size="small" v-model="model.via" placeholder="请选择召唤点" allowClear> | ||
| 106 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId"> | ||
| 107 | + {{ item.pointName }} | ||
| 108 | + </a-select-option> | ||
| 109 | + </a-select> | ||
| 110 | + </a-form-model-item> | ||
| 111 | + </a-col> | ||
| 112 | + <a-col :span="24"> | ||
| 113 | + <a-form-model-item label="选择目标点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 114 | + <a-select size="small" v-model="model.pointId" placeholder="请选择目标点" allowClear> | ||
| 115 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId"> | ||
| 116 | + {{ item.pointName }} | ||
| 117 | + </a-select-option> | ||
| 118 | + </a-select> | ||
| 119 | + </a-form-model-item> | ||
| 120 | + </a-col> | ||
| 121 | + <!-- <a-col :span="24"> | ||
| 122 | + <a-form-model-item label="选择机器人任务流" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 123 | + <a-select size="small" v-model="model.templateId" placeholder="请选择机器人任务流" allowClear style="width: 100%" @change="handleChange"> | ||
| 124 | + <a-select-option v-for="(item,index) in templateIdOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 125 | + </a-select> | ||
| 126 | + </a-form-model-item> | ||
| 127 | + </a-col> | ||
| 128 | + v-if="model.templateId === 'dock_cabin_and_move_target_with_wait_action'" | ||
| 129 | + --> | ||
| 130 | + <a-col :span="24" v-if="model.robotName === 'SCWM00JS48YF01635'"> | ||
| 131 | + <a-form-model-item label="输入超时时间(秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="overtime"> | ||
| 132 | + <a-input-number :min="0" placeholder="请输入超时时间(秒)" style="width: 250px;" v-model="model.overtime"></a-input-number> | ||
| 133 | + </a-form-model-item> | ||
| 134 | + </a-col> | ||
| 135 | + </a-row> | ||
| 136 | + </a-form-model> | ||
| 137 | + </a-modal> | ||
| 138 | + <!-- 机器人返回舱位 --> | ||
| 139 | + <a-modal v-model="showRobot1" title="机器人返回舱位" on-ok="handleOk1" width="800px"> | ||
| 140 | + <template slot="footer"> | ||
| 141 | + <a-button key="back" @click="handleCancel1"> | ||
| 142 | + 取消 | ||
| 143 | + </a-button> | ||
| 144 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk1"> | ||
| 145 | + 确定 | ||
| 146 | + </a-button> | ||
| 147 | + </template> | ||
| 148 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 149 | + <a-row> | ||
| 150 | + <a-col :span="24"> | ||
| 151 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 152 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 153 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id"> | ||
| 154 | + <img :src="item.img" style="float: left; height: 16px; margin-top: 2px;"> | ||
| 155 | + <span style="float: left">{{ item.value }}</span> | ||
| 156 | + </a-select-option> | ||
| 157 | + </a-select> | ||
| 158 | + </a-form-model-item> | ||
| 159 | + </a-col> | ||
| 160 | + <a-col :span="24"> | ||
| 161 | + <a-form-model-item label="选择机器人舱位点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 162 | + <a-select size="small" v-model="model.cabinId" placeholder="请选择机器人舱位点" allowClear> | ||
| 163 | + <a-select-option v-for="(item,index) in cabinOptions" :key="index" :value="item.cabinId">{{ item.cabinName }}</a-select-option> | ||
| 164 | + </a-select> | ||
| 165 | + </a-form-model-item> | ||
| 166 | + </a-col> | ||
| 167 | + </a-row> | ||
| 168 | + </a-form-model> | ||
| 169 | + </a-modal> | ||
| 170 | + <a-modal v-model="callRobotMoveShowDialog" title="选择机器人动作" on-ok="handleOk2" width="800px"> | ||
| 171 | + <template slot="footer"> | ||
| 172 | + <a-button key="back" @click="handleCancel2"> | ||
| 173 | + 取消 | ||
| 174 | + </a-button> | ||
| 175 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk2"> | ||
| 176 | + 确定 | ||
| 177 | + </a-button> | ||
| 178 | + </template> | ||
| 179 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 180 | + <a-row> | ||
| 181 | + <a-col :span="24"> | ||
| 182 | + <a-form-model-item label="选择机器人动作" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 183 | + <a-select size="small" v-model="model.option" placeholder="请选择机器人" allowClear> | ||
| 184 | + <a-select-option v-for="(item,index) in cancleMoveOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 185 | + </a-select> | ||
| 186 | + </a-form-model-item> | ||
| 187 | + </a-col> | ||
| 188 | + </a-row> | ||
| 189 | + </a-form-model> | ||
| 190 | + </a-modal> | ||
| 75 | </a-card> | 191 | </a-card> |
| 192 | + | ||
| 76 | </template> | 193 | </template> |
| 77 | 194 | ||
| 78 | <script> | 195 | <script> |
| @@ -81,7 +198,9 @@ import { mixinDevice } from '@/utils/mixin' | @@ -81,7 +198,9 @@ import { mixinDevice } from '@/utils/mixin' | ||
| 81 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' | 198 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| 82 | import TblDepotInModal from './modules/TblDepotInModal' | 199 | import TblDepotInModal from './modules/TblDepotInModal' |
| 83 | import { mapGetters } from 'vuex' | 200 | import { mapGetters } from 'vuex' |
| 84 | - | 201 | +import { httpAction} from '@/api/manage' |
| 202 | +import {getRobotPoints,getRobotGoCharge} from '@/api/RobotPoints' | ||
| 203 | +import {getRobotCabins} from '@/api/RobotCabin' | ||
| 85 | export default { | 204 | export default { |
| 86 | name: 'TblDepotInList', | 205 | name: 'TblDepotInList', |
| 87 | mixins: [JeecgListMixin, mixinDevice], | 206 | mixins: [JeecgListMixin, mixinDevice], |
| @@ -93,6 +212,42 @@ export default { | @@ -93,6 +212,42 @@ export default { | ||
| 93 | deleteFlg: false, | 212 | deleteFlg: false, |
| 94 | description: 'tbl_depot管理页面', | 213 | description: 'tbl_depot管理页面', |
| 95 | toggleSearchStatus: true, | 214 | toggleSearchStatus: true, |
| 215 | + showRobot:false, | ||
| 216 | + showRobot1:false, | ||
| 217 | + callRobotMoveShowDialog: false, | ||
| 218 | + loading: false, | ||
| 219 | + labelCol: { | ||
| 220 | + xs: { span: 24 }, | ||
| 221 | + sm: { span: 5 }, | ||
| 222 | + }, | ||
| 223 | + wrapperCol: { | ||
| 224 | + xs: { span: 24 }, | ||
| 225 | + sm: { span: 16 }, | ||
| 226 | + }, | ||
| 227 | + robotOptions:[ | ||
| 228 | + {id:"SCWM00JS48YF01635",value:"开放收物上舱",img:require("../../assets/kaifangcang.png")}, | ||
| 229 | + {id:"SCSK08C0450100861",value:"送物上舱",img:require("../../assets/songwushangcang.png")} | ||
| 230 | + ], | ||
| 231 | + cancleMoveOptions:[ | ||
| 232 | + {id:"BACK_DEFAULT_ORIGIN",value:"取消后回充"}, | ||
| 233 | + {id:"DONT_BACK_DEFAULT_ORIGIN",value:"取消后停留在原地"} | ||
| 234 | + ], | ||
| 235 | + cabinOptions:[], | ||
| 236 | + pointOptions:[], | ||
| 237 | + templateIdOptions:[ | ||
| 238 | + {id:"docking_cabin_and_move_target",value:"上舱移动到目的地"}, | ||
| 239 | + {id:"dock_cabin_to_move_and_lift_down",value:"上舱移动到目的地并放下上舱"}, | ||
| 240 | + {id:"dock_cabin_and_move_target_with_wait_action",value:"上舱移动到目的地,超时返回"}, | ||
| 241 | + {id:"docking_cabin_and_docking_down",value:"上舱移动到另外一个舱位并放下"}, | ||
| 242 | + {id:"move_target_and_lift_down",value:"上舱移动到目的地并放下上舱"}, | ||
| 243 | + ], | ||
| 244 | + validatorRules: { | ||
| 245 | + robotName: [{ required: true, message: '请选择机器人!' }], | ||
| 246 | + pointId: [{ required: true, message: '请选择目标点位!' }], | ||
| 247 | + templateId: [{ required: true, message: '请选择机器人任务!' }], | ||
| 248 | + }, | ||
| 249 | + model:{}, | ||
| 250 | + confirmLoading: false, | ||
| 96 | // 表头 | 251 | // 表头 |
| 97 | columns: [ | 252 | columns: [ |
| 98 | { | 253 | { |
| @@ -159,6 +314,9 @@ export default { | @@ -159,6 +314,9 @@ export default { | ||
| 159 | deleteBatch: '/depot/tblDepot/deleteBatch', | 314 | deleteBatch: '/depot/tblDepot/deleteBatch', |
| 160 | exportXlsUrl: '/depot/tblDepot/exportXls', | 315 | exportXlsUrl: '/depot/tblDepot/exportXls', |
| 161 | importExcelUrl: 'depot/tblDepot/importExcel', | 316 | importExcelUrl: 'depot/tblDepot/importExcel', |
| 317 | + callRobotMove: '/robotPoints/tblRobotPoints/movetoTarget', | ||
| 318 | + callRobotReturnToCabin: '/robotPoints/tblRobotPoints/returnToCabin', | ||
| 319 | + cancleRobotMove: '/robotPoints/tblRobotPoints/cancleMove', | ||
| 162 | }, | 320 | }, |
| 163 | dictOptions: {}, | 321 | dictOptions: {}, |
| 164 | superFieldList: [], | 322 | superFieldList: [], |
| @@ -174,6 +332,7 @@ export default { | @@ -174,6 +332,7 @@ export default { | ||
| 174 | }, | 332 | }, |
| 175 | }, | 333 | }, |
| 176 | methods: { | 334 | methods: { |
| 335 | + | ||
| 177 | ...mapGetters(["nickname", "avatar", "userInfo"]), | 336 | ...mapGetters(["nickname", "avatar", "userInfo"]), |
| 178 | delete() { | 337 | delete() { |
| 179 | if (this.nickname() === '管理员') { | 338 | if (this.nickname() === '管理员') { |
| @@ -181,6 +340,11 @@ export default { | @@ -181,6 +340,11 @@ export default { | ||
| 181 | } | 340 | } |
| 182 | }, | 341 | }, |
| 183 | initDictConfig() { }, | 342 | initDictConfig() { }, |
| 343 | + | ||
| 344 | + handleChange(value) { | ||
| 345 | + console.log(this.model.cabinId); | ||
| 346 | + | ||
| 347 | + }, | ||
| 184 | getSuperFieldList() { | 348 | getSuperFieldList() { |
| 185 | let fieldList = [] | 349 | let fieldList = [] |
| 186 | fieldList.push({ type: 'string', value: 'partNumber', text: '零件编号', dictCode: '' }) | 350 | fieldList.push({ type: 'string', value: 'partNumber', text: '零件编号', dictCode: '' }) |
| @@ -192,6 +356,139 @@ export default { | @@ -192,6 +356,139 @@ export default { | ||
| 192 | fieldList.push({ type: 'date', value: 'operTime', text: '出入库时间' }) | 356 | fieldList.push({ type: 'date', value: 'operTime', text: '出入库时间' }) |
| 193 | this.superFieldList = fieldList | 357 | this.superFieldList = fieldList |
| 194 | }, | 358 | }, |
| 359 | + callRobot(){ | ||
| 360 | + this.showRobot = true; | ||
| 361 | + this.getRobotPoints() | ||
| 362 | + }, | ||
| 363 | + getRobotPoints(){ | ||
| 364 | + getRobotPoints().then((res)=>{ | ||
| 365 | + if(res.success){ | ||
| 366 | + this.pointOptions = res.result | ||
| 367 | + } | ||
| 368 | + }); | ||
| 369 | + }, | ||
| 370 | + getRobotCabins(){ | ||
| 371 | + getRobotCabins().then((res)=>{ | ||
| 372 | + console.log(res) | ||
| 373 | + if(res.success){ | ||
| 374 | + this.cabinOptions = res.result | ||
| 375 | + } | ||
| 376 | + }); | ||
| 377 | + }, | ||
| 378 | + callRobotReturnToCabin(){ | ||
| 379 | + this.showRobot1 = true | ||
| 380 | + this.getRobotCabins() | ||
| 381 | + }, | ||
| 382 | + callRobotGoCharge(){ | ||
| 383 | + getRobotGoCharge().then((res)=>{ | ||
| 384 | + // console.log('res===',res) | ||
| 385 | + if (res.success) { | ||
| 386 | + this.$message.success(res.message) | ||
| 387 | + this.$emit('ok') | ||
| 388 | + } else { | ||
| 389 | + this.$message.warning(res.message) | ||
| 390 | + } | ||
| 391 | + }); | ||
| 392 | + }, | ||
| 393 | + | ||
| 394 | + callRobotMoveShow(){ | ||
| 395 | + this.callRobotMoveShowDialog = true | ||
| 396 | + }, | ||
| 397 | + | ||
| 398 | + handleOk(e) { | ||
| 399 | + this.$refs.form.validate((valid) => { | ||
| 400 | + if (valid) { | ||
| 401 | + this.model.templateId = 'dock_cabin_and_move_target_with_wait_action' | ||
| 402 | + this.confirmLoading = true | ||
| 403 | + let httpurl = '' | ||
| 404 | + let method = '' | ||
| 405 | + httpurl += this.url.callRobotMove | ||
| 406 | + method = 'post' | ||
| 407 | + console.log(this.model) | ||
| 408 | + // return | ||
| 409 | + httpAction(httpurl, this.model, method) | ||
| 410 | + .then((res) => { | ||
| 411 | + if (res.success) { | ||
| 412 | + this.$message.success(res.message) | ||
| 413 | + this.$emit('ok') | ||
| 414 | + } else { | ||
| 415 | + this.$message.warning(res.message) | ||
| 416 | + } | ||
| 417 | + }) | ||
| 418 | + .finally(() => { | ||
| 419 | + this.showRobot = false | ||
| 420 | + this.confirmLoading = false | ||
| 421 | + this.handleCancel() | ||
| 422 | + }) | ||
| 423 | + } | ||
| 424 | + }) | ||
| 425 | + }, | ||
| 426 | + handleCancel(e) { | ||
| 427 | + this.showRobot = false; | ||
| 428 | + this.model = {} | ||
| 429 | + }, | ||
| 430 | + handleOk1(e) { | ||
| 431 | + this.$refs.form.validate((valid) => { | ||
| 432 | + if (valid) { | ||
| 433 | + this.confirmLoading = true | ||
| 434 | + let httpurl = '' | ||
| 435 | + let method = '' | ||
| 436 | + httpurl += this.url.callRobotReturnToCabin | ||
| 437 | + method = 'post' | ||
| 438 | + console.log(this.model) | ||
| 439 | + // return | ||
| 440 | + httpAction(httpurl, this.model, method) | ||
| 441 | + .then((res) => { | ||
| 442 | + if (res.success) { | ||
| 443 | + this.$message.success(res.message) | ||
| 444 | + this.$emit('ok') | ||
| 445 | + } else { | ||
| 446 | + this.$message.warning(res.message) | ||
| 447 | + } | ||
| 448 | + }) | ||
| 449 | + .finally(() => { | ||
| 450 | + // this.showRobot1 = false | ||
| 451 | + this.confirmLoading = false | ||
| 452 | + this.handleCancel1() | ||
| 453 | + }) | ||
| 454 | + } | ||
| 455 | + }) | ||
| 456 | + }, | ||
| 457 | + handleOk2(e) { | ||
| 458 | + this.$refs.form.validate((valid) => { | ||
| 459 | + if (valid) { | ||
| 460 | + this.confirmLoading = true | ||
| 461 | + let httpurl = '' | ||
| 462 | + let method = '' | ||
| 463 | + httpurl += this.url.cancleRobotMove | ||
| 464 | + method = 'post' | ||
| 465 | + // console.log(this.model) | ||
| 466 | + // return | ||
| 467 | + httpAction(httpurl, this.model, method) | ||
| 468 | + .then((res) => { | ||
| 469 | + if (res.success) { | ||
| 470 | + this.$message.success(res.message) | ||
| 471 | + this.$emit('ok') | ||
| 472 | + } else { | ||
| 473 | + this.$message.warning(res.message) | ||
| 474 | + } | ||
| 475 | + }) | ||
| 476 | + .finally(() => { | ||
| 477 | + // this.showRobot1 = false | ||
| 478 | + this.confirmLoading = false | ||
| 479 | + this.handleCancel2() | ||
| 480 | + }) | ||
| 481 | + } | ||
| 482 | + }) | ||
| 483 | + }, | ||
| 484 | + handleCancel1(e) { | ||
| 485 | + this.showRobot1 = false; | ||
| 486 | + this.model ={} | ||
| 487 | + }, | ||
| 488 | + handleCancel2(e) { | ||
| 489 | + this.callRobotMoveShowDialog = false; | ||
| 490 | + this.model ={} | ||
| 491 | + }, | ||
| 195 | }, | 492 | }, |
| 196 | } | 493 | } |
| 197 | </script> | 494 | </script> |
| @@ -46,18 +46,10 @@ | @@ -46,18 +46,10 @@ | ||
| 46 | <!-- 操作按钮区域 --> | 46 | <!-- 操作按钮区域 --> |
| 47 | <div class="table-operator"> | 47 | <div class="table-operator"> |
| 48 | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | 48 | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> |
| 49 | - <!-- <a-button type="primary" icon="download" @click="handleExportXls('tbl_depot')">导出</a-button> | ||
| 50 | - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | ||
| 51 | - <a-button type="primary" icon="import">导入</a-button> | ||
| 52 | - </a-upload> --> | ||
| 53 | - <!-- 高级查询区域 --> | ||
| 54 | - <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> --> | ||
| 55 | - <!-- <a-dropdown v-if="selectedRowKeys.length > 0"> | ||
| 56 | - <a-menu slot="overlay"> | ||
| 57 | - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | ||
| 58 | - </a-menu> | ||
| 59 | - <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | ||
| 60 | - </a-dropdown> --> | 49 | + <a-button @click="callRobot" type="primary" icon="reddit">机器人召唤送物</a-button> |
| 50 | + <a-button @click="callRobotReturnToCabin" type="primary" icon="api">机器人返回舱位点</a-button> | ||
| 51 | + <a-button @click="callRobotGoCharge" type="primary" icon="api">机器人返回充电桩</a-button> | ||
| 52 | + <!-- <a-button @click="callRobotMoveShow" type="primary" icon="api">机器人取消任务</a-button> --> | ||
| 61 | </div> | 53 | </div> |
| 62 | 54 | ||
| 63 | <!-- table区域-begin --> | 55 | <!-- table区域-begin --> |
| @@ -98,6 +90,105 @@ | @@ -98,6 +90,105 @@ | ||
| 98 | </div> | 90 | </div> |
| 99 | 91 | ||
| 100 | <tbl-depot-out-modal ref="modalForm" @ok="modalFormOk"></tbl-depot-out-modal> | 92 | <tbl-depot-out-modal ref="modalForm" @ok="modalFormOk"></tbl-depot-out-modal> |
| 93 | + <a-modal v-model="showRobot" title="机器人任务" on-ok="handleOk" width="800px"> | ||
| 94 | + <template slot="footer"> | ||
| 95 | + <a-button key="back" @click="handleCancel"> | ||
| 96 | + 取消 | ||
| 97 | + </a-button> | ||
| 98 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk"> | ||
| 99 | + 确定 | ||
| 100 | + </a-button> | ||
| 101 | + </template> | ||
| 102 | + <!-- 召唤机器人送物 --> | ||
| 103 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 104 | + <a-row> | ||
| 105 | + <a-col :span="24"> | ||
| 106 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 107 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 108 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id"> | ||
| 109 | + <img :src="item.img" style="float: left; height: 16px; margin-top: 2px;margin-right: 10px;"> | ||
| 110 | + <span style="float: left">{{ item.value }}</span> | ||
| 111 | + </a-select-option> | ||
| 112 | + </a-select> | ||
| 113 | + </a-form-model-item> | ||
| 114 | + </a-col> | ||
| 115 | + <a-col :span="24" v-if="model.robotName === 'SCSK08C0450100861'"> | ||
| 116 | + <a-form-model-item label="选择召唤点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 117 | + <a-select size="small" v-model="model.via" placeholder="请选择召唤点" allowClear> | ||
| 118 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId"> | ||
| 119 | + {{ item.pointName }} | ||
| 120 | + </a-select-option> | ||
| 121 | + </a-select> | ||
| 122 | + </a-form-model-item> | ||
| 123 | + </a-col> | ||
| 124 | + <a-col :span="24"> | ||
| 125 | + <a-form-model-item label="选择目标点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 126 | + <a-select size="small" v-model="model.pointId" placeholder="请选择目标点" allowClear> | ||
| 127 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId">{{ item.pointName }}</a-select-option> | ||
| 128 | + </a-select> | ||
| 129 | + </a-form-model-item> | ||
| 130 | + </a-col> | ||
| 131 | + <a-col :span="24" v-if="model.robotName === 'SCWM00JS48YF01635'"> | ||
| 132 | + <a-form-model-item label="输入超时时间(秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="overtime"> | ||
| 133 | + <a-input-number :min="0" placeholder="请输入超时时间(秒)" style="width: 250px;" v-model="model.overtime"></a-input-number> | ||
| 134 | + </a-form-model-item> | ||
| 135 | + </a-col> | ||
| 136 | + </a-row> | ||
| 137 | + </a-form-model> | ||
| 138 | + </a-modal> | ||
| 139 | + <!-- 机器人返回舱位 --> | ||
| 140 | + <a-modal v-model="showRobot1" title="机器人返回舱位" on-ok="handleOk1" width="800px"> | ||
| 141 | + <template slot="footer"> | ||
| 142 | + <a-button key="back" @click="handleCancel1"> | ||
| 143 | + 取消 | ||
| 144 | + </a-button> | ||
| 145 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk1"> | ||
| 146 | + 确定 | ||
| 147 | + </a-button> | ||
| 148 | + </template> | ||
| 149 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 150 | + <a-row> | ||
| 151 | + <a-col :span="24"> | ||
| 152 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 153 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 154 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id"> | ||
| 155 | + <img :src="item.img" style="float: left; height: 16px; margin-top: 2px;margin-right: 10px;" > | ||
| 156 | + <span style="float: left">{{ item.value }}</span> | ||
| 157 | + </a-select-option> | ||
| 158 | + </a-select> | ||
| 159 | + </a-form-model-item> | ||
| 160 | + </a-col> | ||
| 161 | + <a-col :span="24"> | ||
| 162 | + <a-form-model-item label="选择机器人舱位点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 163 | + <a-select size="small" v-model="model.cabinId" placeholder="请选择机器人舱位点" allowClear> | ||
| 164 | + <a-select-option v-for="(item,index) in cabinOptions" :key="index" :value="item.cabinId">{{ item.cabinName }}</a-select-option> | ||
| 165 | + </a-select> | ||
| 166 | + </a-form-model-item> | ||
| 167 | + </a-col> | ||
| 168 | + </a-row> | ||
| 169 | + </a-form-model> | ||
| 170 | + </a-modal> | ||
| 171 | + <a-modal v-model="callRobotMoveShowDialog" title="选择机器人动作" on-ok="handleOk2" width="800px"> | ||
| 172 | + <template slot="footer"> | ||
| 173 | + <a-button key="back" @click="handleCancel2"> | ||
| 174 | + 取消 | ||
| 175 | + </a-button> | ||
| 176 | + <a-button key="submit" type="primary" :loading="loading" @click="handleOk2"> | ||
| 177 | + 确定 | ||
| 178 | + </a-button> | ||
| 179 | + </template> | ||
| 180 | + <a-form-model ref="form" :model="model" :rules="validatorRules" > | ||
| 181 | + <a-row> | ||
| 182 | + <a-col :span="24"> | ||
| 183 | + <a-form-model-item label="选择机器人动作" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 184 | + <a-select size="small" v-model="model.option" placeholder="请选择机器人" allowClear> | ||
| 185 | + <a-select-option v-for="(item,index) in cancleMoveOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 186 | + </a-select> | ||
| 187 | + </a-form-model-item> | ||
| 188 | + </a-col> | ||
| 189 | + </a-row> | ||
| 190 | + </a-form-model> | ||
| 191 | + </a-modal> | ||
| 101 | </a-card> | 192 | </a-card> |
| 102 | </template> | 193 | </template> |
| 103 | 194 | ||
| @@ -108,7 +199,9 @@ import { mixinDevice } from '@/utils/mixin' | @@ -108,7 +199,9 @@ import { mixinDevice } from '@/utils/mixin' | ||
| 108 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' | 199 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| 109 | import TblDepotOutModal from './modules/TblDepotOutModal' | 200 | import TblDepotOutModal from './modules/TblDepotOutModal' |
| 110 | import { mapGetters } from 'vuex' | 201 | import { mapGetters } from 'vuex' |
| 111 | - | 202 | +import {getRobotPoints,getRobotGoCharge} from '@/api/RobotPoints' |
| 203 | +import {getRobotCabins} from '@/api/RobotCabin' | ||
| 204 | +import { httpAction} from '@/api/manage' | ||
| 112 | export default { | 205 | export default { |
| 113 | name: 'TblDepotOutList', | 206 | name: 'TblDepotOutList', |
| 114 | mixins: [JeecgListMixin, mixinDevice], | 207 | mixins: [JeecgListMixin, mixinDevice], |
| @@ -206,10 +299,54 @@ export default { | @@ -206,10 +299,54 @@ export default { | ||
| 206 | deleteBatch: "/depot/tblDepot/deleteBatch", | 299 | deleteBatch: "/depot/tblDepot/deleteBatch", |
| 207 | exportXlsUrl: "/depot/tblDepot/exportXls", | 300 | exportXlsUrl: "/depot/tblDepot/exportXls", |
| 208 | importExcelUrl: "depot/tblDepot/importExcel", | 301 | importExcelUrl: "depot/tblDepot/importExcel", |
| 209 | - | 302 | + callRobotMove: '/robotPoints/tblRobotPoints/movetoTarget', |
| 303 | + cancleRobotMove: '/robotPoints/tblRobotPoints/cancleMove', | ||
| 210 | }, | 304 | }, |
| 211 | dictOptions: {}, | 305 | dictOptions: {}, |
| 212 | superFieldList: [], | 306 | superFieldList: [], |
| 307 | + model:{}, | ||
| 308 | + confirmLoading: false, | ||
| 309 | + showRobot:false, | ||
| 310 | + showRobot1:false, | ||
| 311 | + loading: false, | ||
| 312 | + labelCol: { | ||
| 313 | + xs: { span: 24 }, | ||
| 314 | + sm: { span: 5 }, | ||
| 315 | + }, | ||
| 316 | + wrapperCol: { | ||
| 317 | + xs: { span: 24 }, | ||
| 318 | + sm: { span: 16 }, | ||
| 319 | + }, | ||
| 320 | + robotOptions:[ | ||
| 321 | + {id:"SCWM00JS48YF01635",value:"开放收物上舱",img:require("../../assets/kaifangcang.png")}, | ||
| 322 | + {id:"SCSK08C0450100861",value:"送物上舱",img:require("../../assets/kaifangcang.png")} | ||
| 323 | + ], | ||
| 324 | + cancleMoveOptions:[ | ||
| 325 | + {id:"BACK_DEFAULT_ORIGIN",value:"取消后回充"}, | ||
| 326 | + {id:"DONT_BACK_DEFAULT_ORIGIN",value:"取消后停留在原地"} | ||
| 327 | + ], | ||
| 328 | + callRobotMoveShowDialog: false, | ||
| 329 | + cabinOptions:[], | ||
| 330 | + pointOptions:[], | ||
| 331 | + // templateIdOptions:[ | ||
| 332 | + // {id:"dock_cabin_to_move_and_lift_down",value:"调度底盘去某个上仓举起并移动到另外点位放下"}, | ||
| 333 | + // {id:"docking_cabin_and_docking_down",value:"调度底盘移动上舱举起并移动到另外一个舱位放下"}, | ||
| 334 | + // {id:"docking_cabin_and_move_target",value:"调度底盘移动上舱举起并移动到目标点"}, | ||
| 335 | + // {id:"move_target_and_lift_down",value:"托举上舱移动到目的地并且放下上舱"}, | ||
| 336 | + // {id:"dock_cabin_and_move_target_with_wait_action",value:"让某舱到某目的地"} | ||
| 337 | + // ], | ||
| 338 | + templateIdOptions:[ | ||
| 339 | + {id:"docking_cabin_and_move_target",value:"上舱移动到目的地"}, | ||
| 340 | + {id:"dock_cabin_to_move_and_lift_down",value:"上舱移动到目的地并放下上舱"}, | ||
| 341 | + {id:"dock_cabin_and_move_target_with_wait_action",value:"上舱移动到目的地,超时返回"}, | ||
| 342 | + {id:"docking_cabin_and_docking_down",value:"上舱移动到另外一个舱位并放下"}, | ||
| 343 | + {id:"move_target_and_lift_down",value:"上舱移动到目的地并放下上舱"}, | ||
| 344 | + ], | ||
| 345 | + validatorRules: { | ||
| 346 | + robotName: [{ required: true, message: '请选择机器人!' }], | ||
| 347 | + pointId: [{ required: true, message: '请选择目标点位!' }], | ||
| 348 | + templateId: [{ required: true, message: '请选择机器人任务!' }], | ||
| 349 | + }, | ||
| 213 | } | 350 | } |
| 214 | }, | 351 | }, |
| 215 | created() { | 352 | created() { |
| @@ -241,7 +378,150 @@ export default { | @@ -241,7 +378,150 @@ export default { | ||
| 241 | fieldList.push({ type: 'date', value: 'operTime', text: '出入库时间' }) | 378 | fieldList.push({ type: 'date', value: 'operTime', text: '出入库时间' }) |
| 242 | fieldList.push({ type: 'string', value: 'ling', text: '领料人' }) | 379 | fieldList.push({ type: 'string', value: 'ling', text: '领料人' }) |
| 243 | this.superFieldList = fieldList | 380 | this.superFieldList = fieldList |
| 244 | - } | 381 | + }, |
| 382 | + handleOk2(e) { | ||
| 383 | + this.$refs.form.validate((valid) => { | ||
| 384 | + if (valid) { | ||
| 385 | + this.confirmLoading = true | ||
| 386 | + let httpurl = '' | ||
| 387 | + let method = '' | ||
| 388 | + httpurl += this.url.cancleRobotMove | ||
| 389 | + method = 'post' | ||
| 390 | + // console.log(this.model) | ||
| 391 | + // console.log(httpurl) | ||
| 392 | + // return | ||
| 393 | + httpAction(httpurl, this.model, method) | ||
| 394 | + .then((res) => { | ||
| 395 | + if (res.success) { | ||
| 396 | + this.$message.success(res.message) | ||
| 397 | + this.$emit('ok') | ||
| 398 | + } else { | ||
| 399 | + this.$message.warning(res.message) | ||
| 400 | + } | ||
| 401 | + }) | ||
| 402 | + .finally(() => { | ||
| 403 | + this.confirmLoading = false | ||
| 404 | + this.handleCancel2() | ||
| 405 | + }) | ||
| 406 | + } | ||
| 407 | + }) | ||
| 408 | + }, | ||
| 409 | + handleCancel2(e) { | ||
| 410 | + this.callRobotMoveShowDialog = false; | ||
| 411 | + this.model ={} | ||
| 412 | + }, | ||
| 413 | + callRobot(){ | ||
| 414 | + this.showRobot = true; | ||
| 415 | + this.getRobotPoints() | ||
| 416 | + this.model = {} | ||
| 417 | + }, | ||
| 418 | + callRobotReturnToCabin(){ | ||
| 419 | + this.showRobot1 = true | ||
| 420 | + this.getRobotCabins() | ||
| 421 | + }, | ||
| 422 | + getRobotPoints(){ | ||
| 423 | + getRobotPoints().then((res)=>{ | ||
| 424 | + // console.log('res===',res) | ||
| 425 | + if(res.success){ | ||
| 426 | + this.pointOptions = res.result | ||
| 427 | + } | ||
| 428 | + }); | ||
| 429 | + }, | ||
| 430 | + getRobotCabins(){ | ||
| 431 | + getRobotCabins().then((res)=>{ | ||
| 432 | + console.log(res) | ||
| 433 | + if(res.success){ | ||
| 434 | + this.cabinOptions = res.result | ||
| 435 | + } | ||
| 436 | + }); | ||
| 437 | + }, | ||
| 438 | + callRobotGoCharge(){ | ||
| 439 | + getRobotGoCharge().then((res)=>{ | ||
| 440 | + // console.log('res===',res) | ||
| 441 | + if (res.success) { | ||
| 442 | + this.$message.success(res.message) | ||
| 443 | + this.$emit('ok') | ||
| 444 | + } else { | ||
| 445 | + this.$message.warning(res.message) | ||
| 446 | + } | ||
| 447 | + }); | ||
| 448 | + }, | ||
| 449 | + handleChange(value) { | ||
| 450 | + console.log(this.model.cabinId); | ||
| 451 | + | ||
| 452 | + }, | ||
| 453 | + handleOk(e) { | ||
| 454 | + // this.loading = true; | ||
| 455 | + // setTimeout(() => { | ||
| 456 | + // this.showRobot = false; | ||
| 457 | + // this.loading = false; | ||
| 458 | + // }, 3000); | ||
| 459 | + this.$refs.form.validate((valid) => { | ||
| 460 | + if (valid) { | ||
| 461 | + this.model.templateId = 'dock_cabin_and_move_target_with_wait_action' | ||
| 462 | + this.confirmLoading = true | ||
| 463 | + let httpurl = '' | ||
| 464 | + let method = '' | ||
| 465 | + httpurl += this.url.callRobotMove | ||
| 466 | + method = 'post' | ||
| 467 | + console.log(this.model) | ||
| 468 | + // return | ||
| 469 | + httpAction(httpurl, this.model, method) | ||
| 470 | + .then((res) => { | ||
| 471 | + if (res.success) { | ||
| 472 | + this.$message.success(res.message) | ||
| 473 | + this.$emit('ok') | ||
| 474 | + } else { | ||
| 475 | + this.$message.warning(res.message) | ||
| 476 | + } | ||
| 477 | + }) | ||
| 478 | + .finally(() => { | ||
| 479 | + // this.showRobot = false | ||
| 480 | + this.confirmLoading = false | ||
| 481 | + this.handleCancel() | ||
| 482 | + }) | ||
| 483 | + } | ||
| 484 | + }) | ||
| 485 | + }, | ||
| 486 | + handleCancel(e) { | ||
| 487 | + this.showRobot = false; | ||
| 488 | + this.model = {} | ||
| 489 | + }, | ||
| 490 | + handleOk1(e) { | ||
| 491 | + this.$refs.form.validate((valid) => { | ||
| 492 | + if (valid) { | ||
| 493 | + this.confirmLoading = true | ||
| 494 | + let httpurl = '' | ||
| 495 | + let method = '' | ||
| 496 | + httpurl += this.url.callRobotReturnToCabin | ||
| 497 | + method = 'post' | ||
| 498 | + // console.log(this.model) | ||
| 499 | + // return | ||
| 500 | + httpAction(httpurl, this.model, method) | ||
| 501 | + .then((res) => { | ||
| 502 | + if (res.success) { | ||
| 503 | + this.$message.success(res.message) | ||
| 504 | + this.$emit('ok') | ||
| 505 | + } else { | ||
| 506 | + this.$message.warning(res.message) | ||
| 507 | + } | ||
| 508 | + }) | ||
| 509 | + .finally(() => { | ||
| 510 | + // this.showRobot1 = false | ||
| 511 | + this.confirmLoading = false | ||
| 512 | + this.handleCancel1() | ||
| 513 | + }) | ||
| 514 | + } | ||
| 515 | + }) | ||
| 516 | + }, | ||
| 517 | + handleCancel1(e) { | ||
| 518 | + this.showRobot1 = false; | ||
| 519 | + this.model ={} | ||
| 520 | + }, | ||
| 521 | + callRobotMoveShow(){ | ||
| 522 | + this.callRobotMoveShowDialog = true | ||
| 523 | + }, | ||
| 524 | + | ||
| 245 | } | 525 | } |
| 246 | } | 526 | } |
| 247 | </script> | 527 | </script> |
| @@ -3,11 +3,6 @@ | @@ -3,11 +3,6 @@ | ||
| 3 | <j-form-container :disabled="formDisabled"> | 3 | <j-form-container :disabled="formDisabled"> |
| 4 | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | 4 | <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> |
| 5 | <a-row> | 5 | <a-row> |
| 6 | - <!-- <a-col :span="24"> | ||
| 7 | - <a-form-model-item label="创建人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="createBy"> | ||
| 8 | - <a-input v-model="model.createBy" placeholder="请输入创建人"></a-input> | ||
| 9 | - </a-form-model-item> | ||
| 10 | - </a-col> --> | ||
| 11 | <a-col :span="24"> | 6 | <a-col :span="24"> |
| 12 | <a-form-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partNumber"> | 7 | <a-form-model-item label="编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partNumber"> |
| 13 | <a-input v-model="model.partNumber" placeholder="请输入编号" @blur="autoInput" @keyup.enter.native="autoInput" | 8 | <a-input v-model="model.partNumber" placeholder="请输入编号" @blur="autoInput" @keyup.enter.native="autoInput" |
| @@ -53,6 +48,27 @@ | @@ -53,6 +48,27 @@ | ||
| 53 | <j-date placeholder="请选择入库时间" v-model="model.operTime" style="width: 100%" /> | 48 | <j-date placeholder="请选择入库时间" v-model="model.operTime" style="width: 100%" /> |
| 54 | </a-form-model-item> | 49 | </a-form-model-item> |
| 55 | </a-col> | 50 | </a-col> |
| 51 | + <!-- <a-col :span="24"> | ||
| 52 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="robotName"> | ||
| 53 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 54 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 55 | + </a-select> | ||
| 56 | + </a-form-model-item> | ||
| 57 | + </a-col> | ||
| 58 | + <a-col :span="24"> | ||
| 59 | + <a-form-model-item label="选择目标点位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pointId"> | ||
| 60 | + <a-select size="small" v-model="model.pointId" placeholder="请选择目标点位" allowClear> | ||
| 61 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId">{{ item.pointName }}</a-select-option> | ||
| 62 | + </a-select> | ||
| 63 | + </a-form-model-item> | ||
| 64 | + </a-col> | ||
| 65 | + <a-col :span="24"> | ||
| 66 | + <a-form-model-item label="选择机器人任务流" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="templateId"> | ||
| 67 | + <a-select size="small" v-model="model.templateId" placeholder="请选择机器人任务流" allowClear style="width: 100%"> | ||
| 68 | + <a-select-option v-for="(item,index) in templateIdOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 69 | + </a-select> | ||
| 70 | + </a-form-model-item> | ||
| 71 | + </a-col> --> | ||
| 56 | </a-row> | 72 | </a-row> |
| 57 | </a-form-model> | 73 | </a-form-model> |
| 58 | </j-form-container> | 74 | </j-form-container> |
| @@ -62,7 +78,7 @@ | @@ -62,7 +78,7 @@ | ||
| 62 | <script> | 78 | <script> |
| 63 | import { httpAction, getAction, getPartNumber } from '@/api/manage' | 79 | import { httpAction, getAction, getPartNumber } from '@/api/manage' |
| 64 | import { validateDuplicateValue, formatDate } from '@/utils/util' | 80 | import { validateDuplicateValue, formatDate } from '@/utils/util' |
| 65 | - | 81 | +import {getRobotPoints} from '@/api/RobotPoints' |
| 66 | export default { | 82 | export default { |
| 67 | 83 | ||
| 68 | name: 'TblDepotInForm', | 84 | name: 'TblDepotInForm', |
| @@ -99,15 +115,31 @@ export default { | @@ -99,15 +115,31 @@ export default { | ||
| 99 | type: [{ required: true, message: '请输入型号!' }], | 115 | type: [{ required: true, message: '请输入型号!' }], |
| 100 | buyingClassify: [{ required: true, message: '请输入采购性质!' }], | 116 | buyingClassify: [{ required: true, message: '请输入采购性质!' }], |
| 101 | operNumber: [{ required: true, message: '请输入数量!' }], | 117 | operNumber: [{ required: true, message: '请输入数量!' }], |
| 102 | - // createBy:[{ required: true, message: '请输入创建人!' }], | 118 | + robotName: [{ required: true, message: '请选择机器人!' }], |
| 119 | + pointId: [{ required: true, message: '请选择目标点位!' }], | ||
| 120 | + templateId: [{ required: true, message: '请选择机器人任务!' }], | ||
| 103 | }, | 121 | }, |
| 122 | + robotOptions:[ | ||
| 123 | + {id:"SCWM00JS48YF01635",value:"开放收物上舱"}, | ||
| 124 | + {id:"SCSK08C0450100861",value:"送物上舱"} | ||
| 125 | + ], | ||
| 126 | + pointOptions:[], | ||
| 127 | + templateIdOptions:[ | ||
| 128 | + {id:"dock_cabin_to_move_and_lift_down",value:"调度底盘去某个上仓举起并移动到另外点位放下"}, | ||
| 129 | + {id:"docking_cabin_and_docking_down",value:"调度底盘移动上舱举起并移动到另外一个舱位放下"}, | ||
| 130 | + {id:"docking_cabin_and_move_target",value:"调度底盘移动上舱举起并移动到目标点"}, | ||
| 131 | + {id:"move_target_and_lift_down",value:"托举上舱移动到目的地并且放下上舱"}, | ||
| 132 | + {id:"dock_cabin_and_move_target_with_wait_action",value:"让某舱到某目的地"} | ||
| 133 | + ], | ||
| 104 | url: { | 134 | url: { |
| 105 | add: '/depot/tblDepot/add', | 135 | add: '/depot/tblDepot/add', |
| 106 | edit: '/depot/tblDepot/edit', | 136 | edit: '/depot/tblDepot/edit', |
| 107 | queryById: '/depot/tblDepot/queryById', | 137 | queryById: '/depot/tblDepot/queryById', |
| 108 | queryMaterial: '/depot/tblDepot/queryMaterialByPartNum', | 138 | queryMaterial: '/depot/tblDepot/queryMaterialByPartNum', |
| 109 | - queryPartNumber: '/depot/tblDepot/queryPartNumber' | 139 | + queryPartNumber: '/depot/tblDepot/queryPartNumber', |
| 140 | + // queryRobotPoints: '/robotPoints/tblRobotPoints/queryList' | ||
| 110 | }, | 141 | }, |
| 142 | + | ||
| 111 | } | 143 | } |
| 112 | }, | 144 | }, |
| 113 | computed: { | 145 | computed: { |
| @@ -124,8 +156,18 @@ export default { | @@ -124,8 +156,18 @@ export default { | ||
| 124 | created() { | 156 | created() { |
| 125 | //备份model原始值 | 157 | //备份model原始值 |
| 126 | this.modelDefault = JSON.parse(JSON.stringify(this.model)) | 158 | this.modelDefault = JSON.parse(JSON.stringify(this.model)) |
| 159 | + // this.getRobotPoints() | ||
| 127 | }, | 160 | }, |
| 128 | methods: { | 161 | methods: { |
| 162 | + getRobotPoints(){ | ||
| 163 | + var that = this; | ||
| 164 | + getRobotPoints().then((res)=>{ | ||
| 165 | + console.log('res===',res) | ||
| 166 | + if(res.success){ | ||
| 167 | + this.pointOptions = res.result | ||
| 168 | + } | ||
| 169 | + }); | ||
| 170 | + }, | ||
| 129 | onClick(val) { | 171 | onClick(val) { |
| 130 | this.model.partNumber = val | 172 | this.model.partNumber = val |
| 131 | this.$emit('partNumber', this.model.partNumber) | 173 | this.$emit('partNumber', this.model.partNumber) |
| @@ -163,7 +205,7 @@ export default { | @@ -163,7 +205,7 @@ export default { | ||
| 163 | if (valid) { | 205 | if (valid) { |
| 164 | that.confirmLoading = true | 206 | that.confirmLoading = true |
| 165 | let httpurl = '' | 207 | let httpurl = '' |
| 166 | - let method = '' | 208 | + let method = '' |
| 167 | if (!this.model.id) { | 209 | if (!this.model.id) { |
| 168 | httpurl += this.url.add | 210 | httpurl += this.url.add |
| 169 | method = 'post' | 211 | method = 'post' |
| @@ -171,6 +213,8 @@ export default { | @@ -171,6 +213,8 @@ export default { | ||
| 171 | httpurl += this.url.edit | 213 | httpurl += this.url.edit |
| 172 | method = 'put' | 214 | method = 'put' |
| 173 | } | 215 | } |
| 216 | + console.log(this.model) | ||
| 217 | + // return | ||
| 174 | httpAction(httpurl, this.model, method) | 218 | httpAction(httpurl, this.model, method) |
| 175 | .then((res) => { | 219 | .then((res) => { |
| 176 | if (res.success) { | 220 | if (res.success) { |
| @@ -63,6 +63,41 @@ | @@ -63,6 +63,41 @@ | ||
| 63 | <j-date placeholder="请选择出库时间" v-model="model.operTime" style="width: 100%" /> | 63 | <j-date placeholder="请选择出库时间" v-model="model.operTime" style="width: 100%" /> |
| 64 | </a-form-model-item> | 64 | </a-form-model-item> |
| 65 | </a-col> | 65 | </a-col> |
| 66 | + <!-- <a-col> | ||
| 67 | + <a-form-model-item label="是否召唤机器人送物" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operTime"> | ||
| 68 | + <a-radio-group v-model="model.isCallRobot" @change="onChangeRobot"> | ||
| 69 | + <a-radio value="1"> | ||
| 70 | + 是 | ||
| 71 | + </a-radio> | ||
| 72 | + <a-radio value="2"> | ||
| 73 | + 否 | ||
| 74 | + </a-radio> | ||
| 75 | + </a-radio-group> | ||
| 76 | + </a-form-model-item> | ||
| 77 | + </a-col> --> | ||
| 78 | + <!-- <div v-if="model.isCallRobot =='1'"> | ||
| 79 | + <a-col :span="24"> | ||
| 80 | + <a-form-model-item label="选择机器人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="robotName"> | ||
| 81 | + <a-select size="small" v-model="model.robotName" placeholder="请选择机器人" allowClear> | ||
| 82 | + <a-select-option v-for="(item,index) in robotOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 83 | + </a-select> | ||
| 84 | + </a-form-model-item> | ||
| 85 | + </a-col> | ||
| 86 | + <a-col :span="24"> | ||
| 87 | + <a-form-model-item label="选择目标点位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pointId"> | ||
| 88 | + <a-select size="small" v-model="model.pointId" placeholder="请选择目标点位" allowClear> | ||
| 89 | + <a-select-option v-for="(item,index) in pointOptions" :key="index" :value="item.pointId">{{ item.pointName }}</a-select-option> | ||
| 90 | + </a-select> | ||
| 91 | + </a-form-model-item> | ||
| 92 | + </a-col> | ||
| 93 | + <a-col :span="24"> | ||
| 94 | + <a-form-model-item label="选择机器人任务流" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="templateId"> | ||
| 95 | + <a-select size="small" v-model="model.templateId" placeholder="请选择机器人任务流" allowClear style="width: 100%"> | ||
| 96 | + <a-select-option v-for="(item,index) in templateIdOptions" :key="index" :value="item.id">{{ item.value }}</a-select-option> | ||
| 97 | + </a-select> | ||
| 98 | + </a-form-model-item> | ||
| 99 | + </a-col> | ||
| 100 | + </div> --> | ||
| 66 | </a-row> | 101 | </a-row> |
| 67 | </a-form-model> | 102 | </a-form-model> |
| 68 | </j-form-container> | 103 | </j-form-container> |
| @@ -72,7 +107,7 @@ | @@ -72,7 +107,7 @@ | ||
| 72 | <script> | 107 | <script> |
| 73 | import { httpAction, getAction, getPartNumber } from '@/api/manage' | 108 | import { httpAction, getAction, getPartNumber } from '@/api/manage' |
| 74 | import { validateDuplicateValue, formatDate } from '@/utils/util' | 109 | import { validateDuplicateValue, formatDate } from '@/utils/util' |
| 75 | - | 110 | +import {getRobotPoints} from '@/api/RobotPoints' |
| 76 | export default { | 111 | export default { |
| 77 | name: 'TblDepotOutForm', | 112 | name: 'TblDepotOutForm', |
| 78 | components: {}, | 113 | components: {}, |
| @@ -86,11 +121,13 @@ export default { | @@ -86,11 +121,13 @@ export default { | ||
| 86 | }, | 121 | }, |
| 87 | data() { | 122 | data() { |
| 88 | return { | 123 | return { |
| 124 | + // value: 1, | ||
| 89 | versionList: [], | 125 | versionList: [], |
| 90 | isShow: false, | 126 | isShow: false, |
| 91 | flag: false, | 127 | flag: false, |
| 92 | model: { | 128 | model: { |
| 93 | operTime: formatDate(new Date().getTime(), 'yyyy-MM-dd'), | 129 | operTime: formatDate(new Date().getTime(), 'yyyy-MM-dd'), |
| 130 | + isCallRobot:'1' | ||
| 94 | }, | 131 | }, |
| 95 | labelCol: { | 132 | labelCol: { |
| 96 | xs: { span: 24 }, | 133 | xs: { span: 24 }, |
| @@ -111,7 +148,22 @@ export default { | @@ -111,7 +148,22 @@ export default { | ||
| 111 | workOrder: [{ required: true, message: '请输入工作令!' }], | 148 | workOrder: [{ required: true, message: '请输入工作令!' }], |
| 112 | ling:[{ required: true, message: '请输入领料人!' }], | 149 | ling:[{ required: true, message: '请输入领料人!' }], |
| 113 | lingSysOrgCode:[{ required: true, message: '请输入领料环节!' }], | 150 | lingSysOrgCode:[{ required: true, message: '请输入领料环节!' }], |
| 151 | + robotName: [{ required: true, message: '请选择机器人!' }], | ||
| 152 | + pointId: [{ required: true, message: '请选择目标点位!' }], | ||
| 153 | + templateId: [{ required: true, message: '请选择机器人任务!' }], | ||
| 114 | }, | 154 | }, |
| 155 | + robotOptions:[ | ||
| 156 | + {id:"SCWM00JS48YF01635",value:"开放收物上舱"}, | ||
| 157 | + {id:"SCSK08C0450100861",value:"送物上舱"} | ||
| 158 | + ], | ||
| 159 | + pointOptions:[], | ||
| 160 | + templateIdOptions:[ | ||
| 161 | + {id:"dock_cabin_to_move_and_lift_down",value:"调度底盘去某个上仓举起并移动到另外点位放下"}, | ||
| 162 | + {id:"docking_cabin_and_docking_down",value:"调度底盘移动上舱举起并移动到另外一个舱位放下"}, | ||
| 163 | + {id:"docking_cabin_and_move_target",value:"调度底盘移动上舱举起并移动到目标点"}, | ||
| 164 | + {id:"move_target_and_lift_down",value:"托举上舱移动到目的地并且放下上舱"}, | ||
| 165 | + {id:"dock_cabin_and_move_target_with_wait_action",value:"让某舱到某目的地"} | ||
| 166 | + ], | ||
| 115 | url: { | 167 | url: { |
| 116 | add: '/depot/tblDepot/add', | 168 | add: '/depot/tblDepot/add', |
| 117 | edit: '/depot/tblDepot/edit', | 169 | edit: '/depot/tblDepot/edit', |
| @@ -136,8 +188,22 @@ export default { | @@ -136,8 +188,22 @@ export default { | ||
| 136 | created() { | 188 | created() { |
| 137 | //备份model原始值 | 189 | //备份model原始值 |
| 138 | this.modelDefault = JSON.parse(JSON.stringify(this.model)) | 190 | this.modelDefault = JSON.parse(JSON.stringify(this.model)) |
| 191 | + // this.getRobotPoints() | ||
| 139 | }, | 192 | }, |
| 140 | methods: { | 193 | methods: { |
| 194 | + onChangeRobot(e) { | ||
| 195 | + console.log('radio checked', e.target.value); | ||
| 196 | + console.log('radio checked11', this.model.isCallRobot); | ||
| 197 | + }, | ||
| 198 | + getRobotPoints(){ | ||
| 199 | + var that = this; | ||
| 200 | + getRobotPoints().then((res)=>{ | ||
| 201 | + console.log('res===',res) | ||
| 202 | + if(res.success){ | ||
| 203 | + this.pointOptions = res.result | ||
| 204 | + } | ||
| 205 | + }); | ||
| 206 | + }, | ||
| 141 | onClickOut(val) { | 207 | onClickOut(val) { |
| 142 | this.model.partNumber = val | 208 | this.model.partNumber = val |
| 143 | this.$emit('partNumber', this.model.partNumber) | 209 | this.$emit('partNumber', this.model.partNumber) |
| @@ -465,6 +465,18 @@ | @@ -465,6 +465,18 @@ | ||
| 465 | scopedSlots: { customRender: 'action' } | 465 | scopedSlots: { customRender: 'action' } |
| 466 | } | 466 | } |
| 467 | ], | 467 | ], |
| 468 | + /* 分页参数 */ | ||
| 469 | + ipagination:{ | ||
| 470 | + current: 1, | ||
| 471 | + pageSize: 30, | ||
| 472 | + pageSizeOptions: ['30', '50', '100'], | ||
| 473 | + showTotal: (total, range) => { | ||
| 474 | + return range[0] + "-" + range[1] + " 共" + total + "条" | ||
| 475 | + }, | ||
| 476 | + showQuickJumper: true, | ||
| 477 | + showSizeChanger: true, | ||
| 478 | + total: 0 | ||
| 479 | + }, | ||
| 468 | url: { | 480 | url: { |
| 469 | list: "/trad/tblTradZong/list", | 481 | list: "/trad/tblTradZong/list", |
| 470 | delete: "/trad/tblTradZong/delete", | 482 | delete: "/trad/tblTradZong/delete", |
-
请 注册 或 登录 后发表评论